【发布时间】:2013-12-30 07:15:01
【问题描述】:
如果我fork 和子进程然后exec 并创建更多子进程(它们本身可以创建更多进程),我如何从第一个进程获得所有后代进程的pids 列表?
有没有更好的方法然后循环 /proc/ 并检查每个进程的 PPid(进程 ID 的父级)?
【问题讨论】:
-
该问题的答案使用 pgrep -P 仅给出 pid 的子进程 pid,而不是该子进程的子进程可能创建的所有进程,而这些进程本身可能创建了更多进程。
-
当然可以,但此时您只需应用递归。
-
@OliCharlesworth 不确定它是否重复,因为您提到的问题是特定于 shell 脚本的,它与这个问题有不同的解决方案,它是 C 相关的,并且可能有,例如(?),作为解决方案的内核调用?
-
C 没有提供通过系统调用实现此目的的标准方法。
-
我已经在stackoverflow.com/questions/17743879/…回答了这个问题