我正在尝试计算如何使用C的系统调用终止会话中的所有进程(具有相同的SID)。我对仅终止具有特定PGID的所有进程不感兴趣,因为并非我感兴趣的所有进程都具有相同的PGID,但它们具有相同的SID。
我的研究只发现了这一点,格雷姆对剧本做了一个很好的回答:https://unix.stackexchange.com/questions/124127/kill-all-descendant-processes
我将很高兴得到一个关于如何可能杀死*所有直系后代的答案,更高兴的是,我将如何在会议期间杀死所有儿童。
或者我所要求的有可能实现吗?我对那里的解决方案不感兴趣,我只是列出了父母后代的ID。
1条答案
按热度按时间uqxowvwt1#
您始终可以使用
/proc/
文件系统来查询进程(有关更多信息,请参见proc(5))。特别是,您可以扫描/proc/
id/
目录(其中id是某个数字名称,如1234
,它是相关的PID,因此在/proc/1234/
伪目录中描述了PID1234的进程;因此,您可以readdir
/proc/
目录并查找其中的每个数字名称),并检查哪些进程具有已定义的父PID。您将按顺序阅读像/proc/1234/status
(及其PPid:
行)这样的伪文件。另请参阅this answer和that one。