2013-10-14 10 views
0

Как я могу найти дочерний процесс pid после того, как родительский процесс умер. У меня есть программа, которая создает дочерний процесс, который продолжает работать после его завершения (родительский).Как найти pid сиротного процесса

т.е.

Я запустить программу из питона сценария (PID = 2).

Сценарий вызывает program P (PID = 3, PPID = 2)

P называет fork(), и теперь у меня есть еще один экземпляр P имени P` (PID = 4 и PPID = 3).

После P заканчивается P` ПИД-4 и PPID равен 1.

Если предположить, что у меня есть PID Р (3), как я могу найти PID ребенка P`?

Спасибо.

ответ

1

Информация теряется, когда процесс в середине заканчивается. Поэтому в вашей ситуации нет способа узнать это.

Вы можете, конечно, придумать свою собственную инфраструктуру для хранения этой информации во время разветвления. Средний процесс (PID 3 в вашем примере) может, конечно, сохранять информацию о том, какие дочерние PID-файлы создаются (например, в файле или сообщать об этом процессу отцовства (PID 1 в вашем примере) через каналы или аналогичные).

Смежные вопросы