首页 文章

给定子PID,如何获得父PID

提问于
浏览
5

我正在开发一个项目,我有一些PID,我必须找出哪些是僵尸进程,然后杀死他们的父进程,以杀死最初的僵尸进程 . 我不确定是否有任何方法可以找出给定PID的PPID是什么 . 任何帮助,将不胜感激 .

2 回答

  • 2

    在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 . 我从来没有用过这个,但据作者说这可能会有所帮助 .

  • 3

    函数getppid()这样做:

    #include <unistd.h>
    
    int main()
    {
        pid_t ppid;
    
        ppid = getppid();
    
        return (0);
    }
    

相关问题