Дочерние процессы, созданные с помощью fork (), автоматически уничтожаются при уничтожении родителя? - PullRequest
34 голосов
/ 28 декабря 2008

Я создаю дочерние процессы с fork() в C / C ++.
Когда родительский процесс завершается (или по какой-то причине прекращается), я хочу, чтобы все дочерние процессы также были уничтожены. Это делается автоматически системой? Или я должен сделать это сам?

Спасибо.


Существующие похожие вопросы:

1 Ответ

43 голосов
/ 28 декабря 2008

Нет. Если родительский объект убит, дочерние элементы становятся дочерними элементами процесса init (который имеет идентификатор процесса 1 и запускается ядром как первый пользовательский процесс).

Процесс init периодически проверяет наличие новых дочерних элементов и ожидает их (таким образом освобождая ресурсы, которые выделяются их возвращаемым значением).

Вопрос уже обсуждался с качественными ответами здесь: Как заставить дочерний процесс умереть после выхода из родительского процесса?

...