QNX procmgr_guardian中有一个函数,它将子进程设置为父进程死亡时其他子进程的监护人。 Linux中也有这样的功能吗?我如何在Linux中实现它?任何指针都表示赞赏。
答案 0 :(得分:0)
没有直接的方法来监控不属于您自己孩子的流程。但是,您可以使用hack:使用pipe()
创建FIFO;确保要监视的进程保持管道的写入结束(并且在所有其他进程中关闭它)。如果进程终止,将在管道的读取端发出EOF条件信号(即,select将指示可读条件)。
如果您希望在其直接父级死亡时重新设置该进程,您可以使用PID namespaces实现此目的。通过在PID命名空间中安排'监护人'进程为PID 1,它将继承该命名空间中的所有孤立进程。