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