我正在尝试创建一个僵尸进程[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在尝试创建一个僵尸进程[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我试图通过了解在线解决方案来创建僵尸进程

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

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

我正在尝试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
");
    }
    else if(childPID == 0)
    {

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

        exit(0);

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


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

    return 0;
}

enter image description here

enter image description here

答案

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

enter image description here

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

另见Create zombie process

以上是关于我正在尝试创建一个僵尸进程[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用叉子结束父进程避免成为僵尸

Linux——进程概念进程创建僵尸进程孤儿进程环境变量程序地址空间详解

Linux——进程概念进程创建僵尸进程孤儿进程环境变量程序地址空间详解

Linux——进程概念进程创建僵尸进程孤儿进程环境变量程序地址空间详解

Android - 片段中的 setAdapter [重复]

为啥在关闭客户端套接字时,他的进程会更改状态“Z”(僵尸)?