#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.
Когда оболочка выполняет ваш код, она переводит вашу программу в отдельную группу процессов переднего плана. Каждый дочерний элемент вашего кода находится в той же группе процессов переднего плана, что и исходная программа, поэтому даже после завершения родительского процесса дочерний элемент все еще находится в группе процессов переднего плана, поэтому вы видите .