From: Paul Brannan Date: 2001-06-23T05:36:49+09:00 Subject: [ruby-talk:16781] Re: socket bug > Thanks, that helped a lot. This seems to do the trick: > trap("CHLD", "SIG_IGN") Note that this is disallowed by POSIX. SIGCHLD is the signal that causes the parent to clean up children that have terminated. Ignoring SIGCHLD could, on some systems, cause a bunch of zombie processes (since they won't get cleaned up). From the Linux man page for signal(2): According to POSIX (B.3.3.1.3) you must not set the action for SIGCHLD to SIG_IGN. Here the BSD and SYSV behaviours differ, causing BSD software that sets the action for SIGCHLD to SIG_IGN to fail on Linux. Susv2 does specify that no children are to become zombies when SIGCHLD is ignored, but it's best not to depend on the behaviour of ignoring SIGCHLD. Paul