Как проявляется процесс зомби? - PullRequest
5 голосов
/ 26 августа 2011

kill -s SIGCHLD Выше приведен код для уничтожения любого процесса зомби, но мой вопрос:Есть ли способ, которым процесс зомби проявляется ??

1 Ответ

7 голосов
/ 26 августа 2011

steenhulthin правильно, но пока он не сдвинут, кто-то может также ответить на это здесь.Зомби-процесс существует между моментом, когда дочерний процесс завершается, и временем, когда родитель вызывает одну из wait() функций, чтобы получить статус выхода.

Простой пример:

/* Simple example that creates a zombie process. */

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(void)
{
    pid_t cpid;
    char s[4];
    int status;

    cpid = fork();

    if (cpid == -1) {
        puts("Whoops, no child process, bye.");
        return 1;
    }

    if (cpid == 0) {
        puts("Child process says 'goodbye cruel world.'");
        return 0;
    }

    puts("Parent process now cruelly lets its child exist as\n"
         "a zombie until the user presses enter.\n"
         "Run 'ps aux | grep mkzombie' in another window to\n"
         "see the zombie.");

    fgets(s, sizeof(s), stdin);
    wait(&status);
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...