我用这段代码做了一个僵尸进程:
pid_t child;
cout<<getpid();
child=fork();
if (child>0)
sleep(60);
else
exit(0);
我正在使用此命令:
ps -e -o pid,ppid,stat,command
它很好,但我希望在我的过程(stat)面前看到Z,但它是Z +,这是什么意思?
答案 0 :(得分:2)
从ps的手册页,更具体地说是进程状态代码:
Z defunct ("zombie") process, terminated but not reaped by its parent.
+ is in the foreground process group.
当shell执行您的代码时,它会将您的程序更改为单独的前台进程组。您的代码中的每个子代都与原始程序位于同一个前台进程组中,因此即使父进程退出,子进程仍处于前台进程组中,这就是您看到+的原因。