LINUX.ORG.RU

SIGCHLD + syslog = defunct?


0

0

Здраствуйте.

При приходе сигнала SIGCHLD родитель делает.

while ( waitpid( -1, &status, WNOHANG) > 0 );

Что довольно успешно работает и все ок.

Тут я захотел вывести в лог пиды детей которые умирают.

и добавил перед while'ом :

openlog ( "MyProg", 0, LOG_DAEMON );

syslog ( LOG_WARNING, "%s", strPid.c_str() );

closelog();

После чего родитель встопорился на данном этапе и не то что в лог ничего не пишет, дык и defunct висит + висит и сам родитель :\. Что тут такого противоестественного?

Спасибо.

★★★

> Что тут такого противоестественного?

syslog, само собой. man signal, там сказано, что можно вызывать в хендлере.

vnp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.