Я заинтересован в создании процесса зомби. Насколько я понимаю, процесс зомби происходит, когда родительский процесс завершается до дочернего процесса. Однако я попытался воссоздать процесс зомби, используя следующий код:
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
exit(0);
}
else {
sleep(100);
exit (0);
}
return 0;
}
Однако этот код завершается сразу после ожидаемого выполнения. Однако, как я
ps aux | grep a.out
Я обнаружил, что a.out работает как обычный процесс, а не как зомби-процесс, как я ожидал.
Я использую ОС Ubuntu 14.04 64 бит.
if (child_pid > 0)
наif (child_pid == 0)
, это исправит ваш код, и вы сможете увидеть процесс-зомби, когда дочерний процесс завершится. - person Susam Pal   schedule 15.12.2015