子进程的数量

时间:2011-07-31 10:56:37

标签: c linux process fork

在UNIX中是否有可靠的方法来了解我的特定子进程有多少子进程?例如,主进程分叉执行login程序的子进程,我可以知道login是否分叉?

UPD 我正在使用C

3 个答案:

答案 0 :(得分:1)

孩子通过他们的ppid(父pid )链接到父母,所以这只是跟随这些链接的问题,这取决于您使用什么语言来实现它。 pstree命令使用它来显示进程树。

关于“可靠”,您必须始终处理出现和消失的进程,最好是尽快对正在运行的进程进行快照,然后才分析数据。

答案 1 :(得分:0)

您必须检查所有进程,检查其PPID(父进程ID)并将其与您希望子进程的进程的PID进行比较。

答案 2 :(得分:0)

这很粗糙,但您可以使用popen what this page is doing版本,并解析返回的值。

而不是grep - 为您的httpsd grep代理您的流程。或者您可以使用--ppid命令上的ps开关,只获取此父进程的所有子进程。