Установить опекун для дочерних процессов в случае смерти родителя - PullRequest
0 голосов
/ 02 августа 2011

В QNX есть функция procmgr_guardian, которая устанавливает дочерний процесс в качестве опекуна другого дочернего процесса в случае смерти родителя. Есть ли такая функциональность и в Linux? Как мне реализовать это в Linux? Любые указатели приветствуются.

1 Ответ

0 голосов
/ 03 августа 2011

Не существует прямого метода для мониторинга процесса, который не является вашим собственным ребенком. Однако есть способ, которым вы можете воспользоваться: создать FIFO, используя pipe(); убедитесь, что отслеживаемый процесс удерживает конец записи канала (и что он закрыт во всех других процессах). Если процесс умирает, условие EOF будет сигнализироваться в конце чтения канала (т. Е. Select будет указывать читаемое условие).

Если вы хотите, чтобы процесс восстанавливался после смерти его непосредственного родителя, вы можете достичь этого с помощью пространств имен PID . Организовав для процесса «хранитель» значение PID 1 в пространстве имен PID, он унаследует все потерянные процессы в этом пространстве имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...