Можно ли принять процесс?

Процесс A fork()s процесс B.

Процесс A умирает и, следовательно, initпринимает B.

] Сторожевой таймер создает процесс C.

Возможно ли, чтобы C как-то перенял B из init?


Обновление:

Или даже возможно, чтобы C усыновил B напрямую (когда A умирает), если C был создан до смерти A, без initстановления промежуточным родителем из Б?


Обновление-1:

Также я был бы признателен за любые комментарии о том, почему наличие возможности принять процесс так, как я описал, было бы плохо или трудно или невозможно реализовать.


Обновление-2– Вариант использования (родительский и дочерний элементы относятся к процессу(ам)):

У меня есть приложение, использующее родитель для управления целой группой дочерних процессов, которые полагаются на средства управления родительского процесса. . Чтобы выполнить свою работу, родитель полагается на получение уведомления о завершении дочернего процесса, что делается посредством получения соответствующего сигнала SIGCHLD.

Если сам родитель умирает из-за какой-то аварии (включая сбой сегментации), мне нужно перезапустить всю «семью», так как сейчас невозможно запустить что-то при завершении дочернего элемента (что также может быть связано с ошибкой сегментации).

В таком случае мне нужно сбить всех детей и сделать полный перезапуск системы.

Возможным способом избежать этой ситуации было бы наличие запасного процесса, который мог бы взять на себя роль мертвого родителя... - если бы он снова мог получать сигналы SIGCHLDот дочерних шагов!

24
задан alk 26 September 2015 в 10:36
поделиться