当前位置: 技术问答>linux和unix
如何察看当前进程有那些子进程?
来源: 互联网 发布时间:2015-01-23
本文导语: 如何察看当前进程有那些子进程? | ps -ef | grep 当前进程ID | grep -v grep | awk '{ print $2}' | grep -v 当前进程ID 上面的命令可以列出当前进程的所有子进程的进程ID 编程实现的话,可以用popen,或...
如何察看当前进程有那些子进程?
|
ps -ef | grep 当前进程ID | grep -v grep | awk '{ print $2}' | grep -v 当前进程ID
上面的命令可以列出当前进程的所有子进程的进程ID
编程实现的话,可以用popen,或者把输出定向到一个文件都可以
|
fprintf(buffer1, "ps -e|grep %s", argv[1]);
fp = popen(buffer1, "r");
while(!feif(fp))
{
fcanf(fp, "%s %s %s %s", buffer1, buffer2, buffer3, buffer4);
printf("processid=[%d]n", buffer1);
}
fp = popen(buffer1, "r");
while(!feif(fp))
{
fcanf(fp, "%s %s %s %s", buffer1, buffer2, buffer3, buffer4);
printf("processid=[%d]n", buffer1);
}
|
利用UNIX命令ps -ef|grep 当前进程号,就可以看到当前进程的所有子进程!
|
在Aix下,可以使用ps -emo THREAD 查看每个进程下的所有sczhuangtai 的
kernal thread
kernal thread
|
读取/proc/`pid`/psinfo文件
在/usr/include/sys/proc.h中定义了psinfo结构
这个结构中包括父进程与子进程的pid
然后在遍历这些pid的psinfo文件
这是最标准的实现方法。
Solaris的/usr/proc/bin/ptree就是用此方法实现的。
不信?
% truss /usr/proc/bin/ptree
在/usr/include/sys/proc.h中定义了psinfo结构
这个结构中包括父进程与子进程的pid
然后在遍历这些pid的psinfo文件
这是最标准的实现方法。
Solaris的/usr/proc/bin/ptree就是用此方法实现的。
不信?
% truss /usr/proc/bin/ptree