2011-08-02 108 views
0

QNX procmgr_guardian中有一项功能,在父母死亡时将子进程设置为其他子进程的监护人。 Linux中是否也有这样的功能?我如何在Linux中实现它?任何指针赞赏。父母死亡时设置子进程的监护人进程

+0

如果你回去接受过去收到的一些答案,你更有可能得到答案... – bdonlan

+0

对不起,我没有得到。你什么意思 ? – Vin

+0

哦,好的。对于那个很抱歉。现在我懂了 ! :( – Vin

回答

0

没有直接的方法来监视不是你自己的孩子的过程。但是,您可以使用以下方法:使用pipe()创建FIFO;确保要监视的进程保持管道的写入结束(并且在所有其他进程中关闭)。如果过程死亡,EOF状态将在管道的读取端发出信号(即,选择将指示可读条件)。

如果您希望进程在直接父级死亡时重​​新进行重新设置,您可以通过PID namespaces来实现此目的。通过将PID守护进程安排为PID名称空间中的PID 1,它将继承该名称空间中的所有孤立进程。

+1

这不是用于监视不是儿童的进程。“procmgr_guardian()函数允许守护进程声明一个子进程作为其子代的父进程来处理其死亡事件:”显示在http://www.qnx.com/developers/docs/6.4.1/neutrino/lib_ref/p/procmgr_guardian.html。我想知道在Linux中是否有类似的功能,或者我想知道如果我们可以将子进程的父进程更改为除“init”之外的另一进程 – Vin