Почему существуют зомби-процессы?
Википедия говорит "Дочерний процесс, который завершается, но его родитель никогда не ожидает, становится процессом зомби ». Я запускаю эту программу:
#include
#include
#include
int main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{
exit(0);
}
else
{
while(1)
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());
sleep(2);
}
}
}
Это создает процесс зомби, но я могуне понимаю, почему зомби-процесс создается здесь?
Выход программы
Hello World1
I am the parent
The PID of parent is 3267
The PID of parent of parent is 2456
I am the parent
The PID of parent is 3267
The PID of parent of parent is 2456
I am the parent
....
.....
Но почему "дочерний процесс завершается, но его родитель не ожидает в этом случае?