in reply to zombies after fork()

Probably the easiest and simplest way to handle prevent zombies is to install the IGNORE signal handler for SIGCHLD messages. Simply add the following line near the top of your program:
$SIG{CHLD}='IGNORE';
This assumes that your main program doesn't need to do anything when the children complete. If it does you will need a more complicated SIGCHLD handler. The following is a very standard SIGCHLD handler:
$SIG{CHLD}=\&REAPER; sub REAPER{ my $stiff; while(($stiff = waitpid(-1,&WNOHANG))>0){ # do something with $stiff if you want } $SIG{CHLD}=\&REAPER; }

Replies are listed 'Best First'.
RE: Re: zombies after fork()
by mikfire (Deacon) on May 29, 2000 at 20:52 UTC
    Be careful when re-installing the signal handler. I was working on FreeBSD some time ago and had no end of trouble with my signal handlers until I stopped the re-install.

    Mik - with just a few words of warning.
    mikfire