我正在开发一个项目,我有一些PID,我必须找出其中哪些是僵尸进程,然后杀死他们的父进程以杀死最初的僵尸进程。我不确定是否有任何方法可以找出给定PID的PPID是什么。任何帮助将不胜感激。
答案 0 :(得分:3)
在ps命令的源代码中,get_proc_stats
中定义了一个名为proc/readproc.h
的函数,其中(除其他外)返回给定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。 我从来没有用过这个,但根据作者的说法,这可能会有所帮助。
答案 1 :(得分:0)
函数getppid()执行此操作:
#include <unistd.h>
int main()
{
pid_t ppid;
ppid = getppid();
return (0);
}