【发布时间】:2010-11-03 19:38:43
【问题描述】:
在我正在处理的基于 Linux 的项目中,我需要能够找到我的所有子进程。每次启动都记录下来是不可行的——需要事后才能找到。这需要是纯 C 语言,我想在不阅读 /proc 的情况下这样做。有谁知道怎么做?
【问题讨论】:
-
通过“纯 C”,我有点包括“不解析命令输出”。
-
为什么不可行?这是迄今为止最干净、最有效的方法。
-
您是否反对编写将覆盖其中一个未使用的系统调用的 LKM?如果是这样,编写一个小型系统调用来为您完成它是微不足道的。
-
LKM 实际上是一个不错的主意。我想我遗漏了——这是一个非常低级的程序,当它是引导系统上唯一起作用的东西之一时,它必须能够获取此信息。这就是为什么我不想叫'ps'。不太确定我对阅读 /proc 的厌恶是什么;我会尝试 LKM 和阅读 /proc 看看哪个效果更好。
-
@Duck Jun:我想获取当前进程的父进程的所有子进程(像
ps那样横向所有进程),这种情况下是不可行的。确实,在这个问题中,取决于 my child processes 的含义:当前进程的子进程,或当前用户拥有的任意进程的子进程。在这个问题中听起来更像是前者。