pub fn reap_zombies() -> ZombieIteratorExpand description
Creates iterator over zombie processes
On each iteration it calls waitpid() and returns child pid and exit
status if there is zombie process. The operation is non-blocking. The
iterator is exhausted when there are no zombie process at the moment,
Alternatively see a more comprehensive child_events() function.
§Example
So waiting for all processes to finish may look like this:
ⓘ
while alive.len() > 0 {
sigwait()
for (pid, status) in zombies() {
alive.remove(pid);
}
}§Important Notes
- If you are using this function you can’t reliably use
Child::waitany more. - If you got
SIGCHLDyou must exhaust this iterator until waiting for next signal, or you will have zombie processes around