my $pid = fork(); die "Can't fork: $!" if ! defined $pid; if ( $pid ) { # parent $SIG{INT} = sub { warn "Sending sig INT to child PID $pid"; kill 'INT' => $pid; }; wait; } else { # child $SIG{INT} = sub { die "Caught sig INT" }; sleep 1 while 1; exit; }