$ perl -E' if (my $pid = fork) { say "My pid is $$, child is $pid"; local $SIG{USR1} = sub { say "parent"; exit 0 }; sleep 1 while 1 } else { local $SIG{USR1} = sub { say "child"; exit 0 }; sleep 1 while 1 }' & [1] 19681 My pid is 19681, child is 19683 $ kill -USR1 19683 child $ kill -USR1 19681 parent [1]+ Done perl -E'if (my $pid = fork) { say "My pid is $$, child is $pid"; local $SIG{USR1} = sub { say "parent"; exit 0 }; sleep 1 while 1 } else { local $SIG{USR1} = sub { say "child"; exit 0 }; sleep 1 while 1}