#!/usr/bin/perl use strict; $|++; my $pid = fork(); if ($pid) { # the parent does not exit prematurely when the handler # is set to IGNORE $SIG{CHLD} = sub { print "$$: Reaping a child process in child signal handler ...\n" }; print "$$: Parent sleeping 5 seconds at [".localtime()."] ...\n"; sleep 5; print "$$: That was refreshing. The time is now [".localtime()."].\n"; exit(0); } else { print "$$: \tChild sleeping for 2 seconds ...\n"; sleep 2; print "$$: \tChild exiting at [".localtime()."] ...\n"; exit(0); }