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

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

Реклама

Perl для IP-Телефонии (38 – сервер с правами суперпользователя, часть 21)

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

Строки 80-85. Подпрограмма reap_child(). Эта подпрограмма представляет собой обра­ботчик chld. Вызывается функция waitpid () в непрерываемом цикле, что влечет за собой выборку идентификаторов дочерних процессов, прекративших свою работу. Каждый процесс, который удален таким образом из системной таблицы процессов, устраняется из глобального хеша %children для обеспечения точного учета активных соединений. 

Строки 86-90. Подпрограмма kill_children(). Отправляется сигнал term с указанием идентификатора каждого активного дочернего процесса. Затем подпрограмма входит в цикл, в котором она приостанавливается с помощью функции sleep ( ) до тех пор, пока хеш %children не будет пуст. Вызов sleep () может быть прерван только при получении сигнала, но, как правило, это происходит после получения входящего сигнала chld. Это — эффективный способ ожидания завершения всех дочерних соединений в родительском процессе.

Строки 91-99. Подпрограмма do_relaunch(). Назначение подпрограммы do_relaunch () состоит в восстановлении среды, по возможности, в такое состояние, в каком сервер находился при первом запуске, и в вызове функции ехес () для замены текущего процесса новым экземпляром сервера.

Выполнение подпрограммы начинается с восстановления привилегий суперпользователя путем установки значения действующего UID, равного реальному UID. Теперь необходимо восстановить первоначальный рабочий каталог. Однако сервер работает в режиме проверки потенциально опасных данных, а вызов функции chdir () чувствителен к потенциально опасным данным. Поэтому выполняется сопоставление с образцом имени рабочего каталога, храняще­гося в переменной $cwd, и осуществляется вызов функции chdir () для перехода в каталог указанный полученным значением пути к каталогу.



2014-11-23 14:35:07

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


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


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


РЕКОМЕНДУЕМ

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