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