Всем привет. Пытаюсь прибить зомби-процессы с помощью обработчика сигнала SIGCHLDstruct sigaction sigchld_action,sigkill_action;
void cleanup_child(int signal_num) {
wait(NULL);
}int init_cleanup_signals() {
memset(&sigchld_action, 0, sizeof(sigchld_action));
sigchld_action.sa_handler = &cleanup_child;
sigaction(SIGCHLD, &sigchld_action, NULL);
return 0;
}Работает, но не всегда :-( В результате в процессе работы демона накапливаются зомби.
Может, кто подскажет, что делаю не так? Как отследить, в чем проблема?
Заранее спасибо.
>[оверквотинг удален]
> sigchld_action.sa_handler = &cleanup_child;
> sigaction(SIGCHLD, &sigchld_action, NULL);
> return 0;
>}
>
>Работает, но не всегда :-( В результате в процессе работы демона накапливаются
>зомби.
>Может, кто подскажет, что делаю не так? Как отследить, в чем проблема?
>
>Заранее спасибо.man wait
man waitpid