在UNIX中是否有可靠的方法来了解我的特定子进程有多少子进程?例如,主进程分叉执行login
程序的子进程,我可以知道login
是否分叉?
UPD 我正在使用C
答案 0 :(得分:1)
孩子通过他们的ppid(父pid )链接到父母,所以这只是跟随这些链接的问题,这取决于您使用什么语言来实现它。 pstree
命令使用它来显示进程树。
关于“可靠”,您必须始终处理出现和消失的进程,最好是尽快对正在运行的进程进行快照,然后才分析数据。
答案 1 :(得分:0)
您必须检查所有进程,检查其PPID(父进程ID)并将其与您希望子进程的进程的PID进行比较。
答案 2 :(得分:0)
这很粗糙,但您可以使用popen
what this page is doing版本,并解析返回的值。
而不是grep
- 为您的httpsd
grep
代理您的流程。或者您可以使用--ppid
命令上的ps
开关,只获取此父进程的所有子进程。