| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Падает демон на Perl |
| Автор: dreamerfkn 25.1.2012, 19:51 | ||
| Здравствуйте! ОС FreeBSD. имеется демон написанный на перл.. с одной стороны слушает сокет типа UNIX(файл /tmp/mysock2) с другой стороны держит постоянное подключение к cisco маршрутизатору. через сокет подключаются клиенты и дают команды на циску. в случае пропадания телнета по таймауту - демон его восстанавливает.. какое-то время демон висит и работает правильно, но в какой-то момент при получении команды от клиента - просто падает.. подскажите отчего такое может быть и где копнуть?
|
| Автор: arto 26.1.2012, 10:02 |
| проверяйте возвраты из функций, ищите, в каком месте падает |
| Автор: Pfailed 26.1.2012, 13:15 | ||||
Можно предположить что в одном из модулей вызывается die/croak на какую-то непредвиденную ситуацию. Сделайте перехват die и запишите сообщение об ошибке в лог:
Еще можно предположить что приходит сингнал PIPE, если один из модулей не очень аккуратно обрабатывает ошибки записи в сокет. Его тоже можно перехватить:
|
| Автор: dreamerfkn 29.1.2012, 10:30 | ||||||
Да перехватил, действительно приходит сигнал PIPE причем от модуля Net::Telnet::Cisco. Подскажите пожалуйста как это обойти.. |
| Автор: Pfailed 29.1.2012, 11:06 | ||
Самым правильным было бы исправить эту ошибку в модуле. Как быстрое решение, возможно, подойдет игнорирование этого сигнала
|