Дочерний процесс перестает функционировать (становится зомби) только тогда, когда его родительский процесс не умер и еще не ждал его.Если исходный родитель умер, то родительский дочерний элемент становится идентификатором процесса 1, и основная задача этого процесса состоит в том, чтобы дождаться смерти его (унаследованных) дочерних элементов и удалить их из списка процессов, чтобы они не были зомби.(Примечание: ребенок-сирота или демон автоматически наследуется PID 1; он не назначается бабушке и дедушке или прабабушке в иерархии процессов.)
Между временем смерти иродитель собирает информацию о выходе через wait()
(или waitpid()
, или waitid()
, или через любой другой вариант), это зомби в списке процессов, отображаемом как defunct
на ps
.
Но чтобы ответить на заголовок вашего вопроса:
- Да, процесс может перестать существовать без смерти его родителя.
(И он может перестать существовать, только если его родительне умер.)