有没有办法告诉一个进程是否是一个子进程,如果它是fork,然后是setsid

时间:2016-05-27 16:49:57

标签: linux setsid

如果某个流程fork,那么孩子确实setsid,有没有办法告诉它是第一个流程的孩子?有没有办法和它的父母一起杀死这个过程?

1 个答案:

答案 0 :(得分:1)

setsid不会破坏父/子关系。所以你仍然可以得到一个过程的孩子,例如G。如here所述(链接我们ubuntu具体,但这适用于任何其他发行版)。

父进程总是可以轻松跟踪其直接子进程,因为fork返回了他们的id(大孩子获得更多tricky ...)并在退出时(优雅地)向其任何子进程发送信号。

prctl(PR_SET_PDEATHSIG, <signal>)(如果父母去世,让孩子们收到信号的便捷方式)也会在调用setsid后继续存在。