我有兴趣创建一个僵尸进程。据我了解,当父进程在子进程之前退出时,会出现僵尸进程。但是,我尝试使用以下代码重新创建僵尸进程:
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
exit(0);
}
else {
sleep(100);
exit (0);
}
return 0;
}
然而,这段代码在执行后立即退出,这是预期的。但是,我
ps aux | grep a.out
我发现a.out只是像一个普通进程一样运行,而不是像我预期的僵尸进程。
我使用的操作系统是ubuntu 14.04 64位
if (child_pid > 0)
到if (child_pid == 0)
,它将“修复”您的代码,并且当子进程退出时,您将能够看到一个僵尸进程。 - Susam Pal