каков результат команды Z в ps?

#unix #process #posix

#unix #процесс #posix

Вопрос:

я создал зомби-процесс с помощью этого кода :

pid_t child; cout<<getpid(); child=fork(); if (child>0) sleep(60); else exit(0);

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

ps -e -o pid, ppid, stat,command

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

Ответ №1:

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

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

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