my $prefork_pid = $$; if ( defined( my $kid = fork ) ) { unless ($kid) { # Launch the external update/restart script. exec( "perl", "$script_path", "$local_port", ); } print "This always prints...\n"; # Try dying gracefully first, then less so. kill 15, $prefork_pid; sleep 5; kill 2, $prefork_pid; sleep 5; kill 9, $prefork_pid; print "This never prints... So it died, alright.\n"; }