我正在尝试创建一个僵尸进程

时间:2018-03-05 05:06:24

标签: c linux operating-system fork zombie-process

我正在尝试通过了解在线解决方案来创建僵尸流程

但我仍然无法使用以下代码找到任何僵尸进程

我不知道我的代码中出了什么问题

我正在尝试pstree -ptop命令来查找我的僵尸进程 但我找不到任何

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>


int main(int argc, char const *argv[])
{
    pid_t childPID;

    childPID = fork();

    if(childPID < 0)
    {
        printf("child Process creation failed\n");
    }
    else if(childPID == 0)
    {

        printf("I am child Process.My pid is: %d\n", getpid());

        exit(0);

        sleep(100);
    }
    else
    {
        sleep(10);


        printf("I am parent process.my pid: %d\n", getpid());
        printf("My child process is: %d\n",childPID);
    }

    return 0;
}

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

我可以在父母仍在运行时看到僵尸进程

enter image description here

但是当父母去世时,两个过程都会消失。我的猜测是,一旦父进程死亡,init(或任何使用pid 1运行的进程)waitpid为僵尸,从而将其从进程列表中删除。

另见Create zombie process