Ваши процессы завершились нормально.<defunct>
означает, что процесс мертв, и единственное, что осталось, это его PID и статус завершения.
Чтобы очистить эти <defunct>
записи в таблице процессов, родительский процесс должен либо wait()
дляего дети или выход сам.В последнем случае (родительский процесс умирает) дочерние процессы становятся сиротами и принимаются init
(процесс с PID 1), который очищается после них.
В некоторых системах 1 Вы также можете игнорировать сигнал SIGCHLD
:
signal(SIGCHLD, SIG_IGN);
Это означает, что дочерние процессы будут запущены немедленно.
1 POSIX перечисляет эту функцию как расширение XSI.Хотя это и не требуется для соответствия POSIX, оно будет поддерживаться всеми XSI-соответствующими системами.