对于Linux,如何使用系统调用终止会话中的所有进程(具有相同的SID)?

ws51t4hk  于 2022-10-04  发布在  Linux
关注(0)|答案(1)|浏览(157)

我正在尝试计算如何使用C的系统调用终止会话中的所有进程(具有相同的SID)。我对仅终止具有特定PGID的所有进程不感兴趣,因为并非我感兴趣的所有进程都具有相同的PGID,但它们具有相同的SID。

我的研究只发现了这一点,格雷姆对剧本做了一个很好的回答:https://unix.stackexchange.com/questions/124127/kill-all-descendant-processes

我将很高兴得到一个关于如何可能杀死*所有直系后代的答案,更高兴的是,我将如何在会议期间杀死所有儿童。

或者我所要求的有可能实现吗?我对那里的解决方案不感兴趣,我只是列出了父母后代的ID。

uqxowvwt

uqxowvwt1#

您始终可以使用/proc/文件系统来查询进程(有关更多信息,请参见proc(5))。特别是,您可以扫描/proc/id/目录(其中id是某个数字名称,如1234,它是相关的PID,因此在/proc/1234/伪目录中描述了PID1234的进程;因此,您可以readdir/proc/目录并查找其中的每个数字名称),并检查哪些进程具有已定义的父PID。您将按顺序阅读像/proc/1234/status(及其PPid:行)这样的伪文件。另请参阅this answerthat one

相关问题