waitpid
waitpid
waitpid PID,FLAGS
Waits for a particular child process to terminate and returns the pid of the deceased process, or -1
if there is no such child process. On some systems, a value of 0 indicates that there are processes still running. The status is returned in $?
and ${^CHILD_ERROR_NATIVE}
. If you say
use POSIX ":sys_wait_h"; #... do { $kid = waitpid(-1, WNOHANG); } while $kid > 0;
then you can do a non-blocking wait for all pending zombie processes. Non-blocking wait is available on machines supporting either the waitpid(2) or wait4(2) syscalls. However, waiting for a particular pid with FLAGS of 0
is implemented everywhere. (Pe