我正在尝试通过了解在线解决方案来创建僵尸流程
但我仍然无法使用以下代码找到任何僵尸进程
我不知道我的代码中出了什么问题
我正在尝试pstree -p
和top
命令来查找我的僵尸进程
但我找不到任何
#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;
}
答案 0 :(得分:3)
我可以在父母仍在运行时看到僵尸进程
但是当父母去世时,两个过程都会消失。我的猜测是,一旦父进程死亡,init
(或任何使用pid 1运行的进程)waitpid
为僵尸,从而将其从进程列表中删除。