home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


wait

wait

Waits for a child process to terminate and returns the pid of the deceased process, or -1 if there are no child processes. The status is returned in $? . If you get zombie child processes, you should be calling either this function or waitpid . A common strategy to avoid such zombies is:

$SIG{CHLD} = sub { wait };
If you expected a child and didn't find it, you probably had a call to system , a close on a pipe, or backticks between the fork and the wait . These constructs also do a wait(2) and may have harvested your child process. Use waitpid to avoid this problem.