> Well, the child is a zombie because the process which called fork
> did not wait() on the child process. This can be accomplished
> asynchronously by handling the SIGCHLD signal. The following (somewhat
> modified to remove unecessary SysV stuff) example comes from the
> perlipc manpage:
>
> sub REAPER {
> $waitedpid = wait;
> }
>
> $SIG{CHLD} = \&REAPER;
> # now do something that forks...
>
> That code will make sure the child doesn't sit there as a zombie.
> As for why the result doesn't come up quickly I can't speculate
> since I don't know what you're doing.
You might have to use the 'double fork()' trick. This creates two childs,
where the second child becomes a child of init when the first child have
exited and the parent wait()'s for the first child. See man perlfunc for
more info. Sorry I don't give more info, just had a party and had had
quite a lot of choice from delicious drinks :)
Maarten
_____________________________________________________________________________
| Maarten Boekhold, Faculty of Electrical Engineering TU Delft, NL |
| [EMAIL PROTECTED] [EMAIL PROTECTED] |
-----------------------------------------------------------------------------
--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
[EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED]