Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Системное программирование > Процессы зомби |
Автор: vaddsm 2.7.2007, 19:01 | ||
Прошу обратить внимание на этот лог:
Такое множество ZN+ и Z+ процессов создает perl сценарий в результате вызова fork. Каждый раз код в форке заканчивается вызовом функции exit. И при этом во время жизни процесса (сценария) существут только один поток-ребенок, но он порождается и умирате множество раз в цикле. В результате этого образуются хвосты хорошо видные в выше преведенном логе. Как избавиться от этих "зомби"? Из за таких хвостов сценарий вырубают автоматически на сервере моего хостера. Чего делать? |
Автор: errr 2.7.2007, 21:57 |
perldoc perlipc use POSIX ":sys_wait_h"; sub REAPER { my $child; # If a second child dies while in the signal handler caused by the # first death, we won’t get another signal. So must loop here else # we will leave the unreaped child as a zombie. And the next time # two children die we get another zombie. And so on. while (($child = waitpid(-1,WNOHANG)) > 0) { $Kid_Status{$child} = $?; } $SIG{CHLD} = \&REAPER; # still loathe sysV } $SIG{CHLD} = \&REAPER; # do something that forks... |
Автор: vaddsm 3.7.2007, 10:52 | ||
Собственно зашел сказать что уже решил проблему даже в буфер вот это кинул:
А тут ответ на помосчь подоспел. Все равно спасибо errr за внимание! |