#!/usr/bin/perl use IO::Socket; #defined(my $pid=fork) or die "Can't fork: $!"; #exit if $pid; #setsid or die "Can't start a new session: $!"; my $sock = new IO::Socket::INET ( "Proto" => "tcp", "LocalPort" => 8819, "Reuse" => 1, "Listen" => 1 ) or die "Server croaked"; $SIG{'USR1'} = \&sigHandler; system("./sleep.pl $$"); while($client = $sock->accept()) { } sub sigHandler { print "SIGNAL HANDLER\n"; } #### #!/usr/bin/perl $ppid = $ARGV[0]; print "$ppid"; defined(my $pid=fork) or die "Can't fork: $!"; exit if $pid; setsid or die "Can't start a new session: $!"; while(1) { sleep(10); print "DISPATCHING SIGNAL\n"; kill(SIGUSR1, $ppid); }