PID зарезервирован до тех пор, пока wait
(или подобная функция, подобная waitpid
) не сообщит родительскому элементу о том, что процесс завершен.
Если процесс завершился, но вам не было сообщено родителю на wait
пока этот процесс называется "зомб ie". Ничего не происходит, когда вы убиваете зомб ie процесс .
Итак, вашему родителю просто нужно быть осторожным, чтобы не отправлять никаких сигналов после того, как wait
сообщит ему, что дочерний процесс завершен. Это должно быть легко. Нет условий гонки.
Примечание: Это также означает, что вам нужно вызвать wait
(или связанную функцию, такую как waitpid
) после порождения дочернего процесса. В качестве альтернативы, если ваш процесс завершается, то зомб ie созданные им процессы исчезают (потому что они «принимаются» PID 1, который вызывает wait
).