# Argv[0] is the file created by the shutdown handler
# Argv[1] means:
#	0	Set up handler with add_shutdown_handler and exit
#	1	Set up handler with set_shutdown_hander and exit
#	2	Set up a handler and call shutdown_next_time
#	3	Set up a handler and call shutdown_now
#
use PersistentPerl;

my $pp = PersistentPerl->new;

my $method = ($ARGV[1] == 1) ? 'add_shutdown_handler' : 'set_shutdown_handler';
$pp->$method(sub {open(F, ">$ARGV[0]")});

BEGIN {
    $SIG{TERM} = IGNORE;
}

if ($ARGV[1] == 2) {
    $pp->shutdown_next_time();
}
elsif ($ARGV[1] == 3) {
    $pp->shutdown_now();
}

print $$;