Дочерние процессы, созданные с помощью fork(), автоматически уничтожаются при уничтожении родителя?
Я создаю дочерние процессы с fork()
в C/C++.
Когда родительский процесс заканчивается (или по какой-то причине уничтожается), я хочу, чтобы все дочерние процессы также были уничтожены.
Это делается автоматически системой? Или я должен сделать это сам?
Благодарю.
Существующие похожие вопросы:
1 ответ
Нет. Если родительский объект убит, дочерние элементы становятся дочерними элементами процесса init (который имеет идентификатор процесса 1 и запускается ядром как первый пользовательский процесс).
Процесс init периодически проверяет наличие новых дочерних элементов и ожидает их (освобождая ресурсы, которые распределяются по их возвращаемому значению).
Вопрос уже обсуждался с качественными ответами здесь: как заставить дочерний процесс умереть после выхода родителей?