Возможно, что ребенок зомби.
После выхода из дочернего процесса он переходит в состояние Z
(Zombie). Это состояние существует для хранения состояния выхода ребенка до тех пор, пока родительский процесс ребенка не сможет его извлечь, и для предотвращения повторного использования PID ребенка до тех пор, пока родитель не будет уведомлен о выходе ребенка.
Родительский процесс получает уведомление о выходе из дочернего процесса посредством вызова одного из системных вызовов семейства wait()
/ waitpid()
. Обычно это делается в ответ на сигнал SIGCHLD
. Как только родитель сделает это, дочерний PID будет освобожден, а процесс Zombie исчезнет.
(В противном случае, если родительский процесс завершится, все его дочерние процессы будут переопределены на init
, что вызовет waitpid()
для них при выходе).