ps命令中Z +的结果是什么?

时间:2011-10-08 12:30:09

标签: unix process posix

我用这段代码做了一个僵尸进程:

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 +,这是什么意思?

1 个答案:

答案 0 :(得分:2)

从ps的手册页,更具体地说是进程状态代码:

Z    defunct ("zombie") process, terminated but not reaped by its parent.
+    is in the foreground process group.

当shell执行您的代码时,它会将您的程序更改为单独的前台进程组。您的代码中的每个子代都与原始程序位于同一个前台进程组中,因此即使父进程退出,子进程仍处于前台进程组中,这就是您看到+的原因。