我正在做一个项目,其中我有许多PID,我必须找出其中哪些是僵尸进程,然后杀死它们的父进程,以便杀死初始的僵尸进程。我不确定是否有任何方法可以找出给定PID的PPID是多少。任何帮助都将不胜感激。
发布于 2016-02-15 23:28:19
在ps命令的源代码中,有一个在proc/readproc.h中定义的名为get_proc_stats的函数,它(以及其他函数)返回给定pid的父pid。您需要安装libproc-dev才能获得此功能。然后,您可以执行以下操作:
#include <proc/readproc.h>
void printppid(pid_t pid) {
proc_t process_info;
get_proc_stats(pid, &process_info);
printf("Parent of pid=%d is pid=%d\n", pid, process_info.ppid);
}这是取自here。我从来没有用过这个,但根据作者的说法,这可能会有帮助。
发布于 2016-02-15 07:34:34
函数getppid()可以做到这一点:
#include <unistd.h>
int main()
{
pid_t ppid;
ppid = getppid();
return (0);
}https://stackoverflow.com/questions/35399271
复制相似问题