According to perlipc,
On most Unix platforms, the CHLD (sometimes also known as CLD) signal has special behavior with respect to a value of 'IGNORE' . Setting $SIG{CHLD} to 'IGNORE' on such a platform has the effect of not creating zombie processes when the parent process fails to wait() on its child processes (i.e. child processes are automatically reaped). Calling wait() with $SIG{CHLD} set to 'IGNORE' usually returns -1 on such platforms.
The alternative is to do something called "double forking", at least on unix. I'm not sure on the details, but a Super Search or a Google search for this should give you some info.
But really, in this case, friedo's response is probably the best for you.
| [reply] |