каков результат Z + в команде ps? - PullRequest
1 голос
/ 08 октября 2011

Я сделал процесс зомби с этим кодом:

</p>

<code>pid_t child;
cout<<getpid();

child=fork();

if (child>0)
    sleep(60);
else
    exit(0);
</code>

и я использую эту команду:

ps -e -o pid, ppid, stat, команда

это хорошо, но я ожидаю увидеть Z перед моим процессом (stat), но это Z +, что это значит?

1 Ответ

2 голосов
/ 08 октября 2011

На странице руководства для ps, более конкретно, коды состояний процесса:

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

Когда оболочка выполняет ваш код, она превращает вашу программу в отдельную группу процессов переднего плана. Каждый дочерний элемент вашего кода находится в той же группе процессов переднего плана, что и исходная программа, поэтому даже после выхода из родительского процесса дочерний элемент все еще находится в группе процессов переднего плана, поэтому вы видите +.

...