Книга: Linux программирование в примерах

10.8.3.1. Плохие родители: полное игнорирование потомков

10.8.3.1. Плохие родители: полное игнорирование потомков

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

Другой возможностью, дающей такой же результат, является использование флага SA_NOCLDWAIТ. В коде:

/* Старый стиль: */        /* Новый стиль: */
signal(SIGCHLD, SIG_IGN);  struct sigaction sa;
                           sa.sa_handler = SIG_IGN;
                           sa.sa_flags = SA_NOCLDWAIT;
                           sigemptyset(&sa.sa_mask);
                           sigaction(SIGCHLD, &sa, NULL);

Оглавление книги


Генерация: 4.488. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз