Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (37 – Повысить безотказность сервера, часть 13)

предыдущая часть ««»» следующая часть

Задача удаления файла PID выпол­няется в блоке END {} модуля Daemon. В процессе выполнения этой программы в системном журнале появляются следующие записи.

Jun 2 23:12:36 pesto_eliza_log.pl [14893]:
Server accepting connections on port 12005 Jun 2 23:12:42 pesto eliza_log.pi[14897]:
Accepting a connection from 127.0.0.1 Jun 2 23:12: 48 pesto eliza_log.pi [ 14897] :
Connection from 127.0.0.1 finished Jun 2 23:12:49 pesto eliza_log.pl [14899]:
Accepting a connection from 192.168.3.5 Jun 2 23:13:02 pesto eliza_log.pl[14901]:
Accepting a connection from 127.0.0.1 Jun 2 23:13:19 pesto eliza_log.pl[14899]:
Connection from 192.168.3.5 finished Jun 2 23:13:26 pesto eliza_log.pl[14801]:
Connection from 127.0.0.1 finished Jun 2 23:13:39 pesto eliza_log.pl[14893]:
Server exiting normally

Обратите внимание, что записи с указаниями о запуске и останове сервера фиксируются с идентификатором PID родительского процесса, а сообщения об отдельных подключениях — с идентификаторами PID различных дочерних процессов. Например, запрос страницы, представляющей стальные радиаторы корадо будет сопровождаться сообщениями с PID дочернего процесса.

Регистрация сообщений, вырабатываемых функциями warn() и die()

Хотя в программе и реализован способ явной регистрации сообщения об ошибках в системном журнале, пока приходится мириться с тем, что сообщения об ошибках вырабатываемые функциями warn () и die (), бесследно пропадают. К счастью в языке Perl предусмотрен механизм перекрытия функций warn () и die () фуккциями, определяемыми пользователем. Это позволяет обеспечить вызов функций warn () подпрограммой log_warn (), а функцией die () — подпрограммы log_die (). Для доступа к обработчикам warn () и die () служат два специальных ключа в  хеше %SIG. Если в качестве значений элементов $SIG{_WARN_} и/или $SIG{_DIE_} этого хеша будут установлены ссылки на код, то при каждом вызове функций warn () или die (), вместо предусмотренных по умолчанию процедур, будет вызываться код. Для внесения такой поправки достаточно ввести небольшое дополнение в  подпрограмму init_log () модуля Daemon.

$SIG{_WARN_) = &log_warn;

$SIG{_DIE_} = &log_die;

После внесения этого изменения можно больше не задумываться о том, что для записи сообщений в журнал нужно вызывать подпрограмму log_notice () и log_die (). Вместо этого, можно использовать знакомую функцию warn () для отправки в системный журнал обычных предупреждающих сообщений или die () регистрации сообщения об аварийной ситуации и завершения программы.



2014-10-25 23:15:52

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония