【问题标题】:is there a way to tell if a process is a child if it did fork and then setsid有没有办法判断一个进程是否是一个子进程,如果它确实 fork 然后 setid 【发布时间】:2026-01-26 10:05:02 【问题描述】: 如果一个进程执行fork 然后子进程执行setsid,有没有办法判断它是第一个进程的子进程?有什么办法可以杀死这样的进程及其父进程? 【问题讨论】: 标签: linux setsid 【解决方案1】: setsid 不会破坏父/子关系。所以你仍然可以得到一个进程的孩子,例如。 G。如here 所述(链接我们特定于 ubuntu,但这适用于任何其他发行版)。 父进程始终可以轻松地跟踪其直接子进程,因为 fork 返回它们的 id(孙子获得更多 tricky...)并在退出时(优雅地)向其任何子进程发送信号。 prctl(PR_SET_PDEATHSIG, <signal>)(让子代接收信号的便捷方式,如果父代死了)也将在对 setid 的调用中幸存下来。 【讨论】: