The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Как завершить порожденный из open() процесс tail -F?"
Отправлено mthawk, 31-Окт-05 15:45 
>Ситуация:
>Из perl скрипта запускается процесс tail -F, натравленный на лог-файл таким способом:
>
>
>open (TAIL, "/usr/bin/tail -F -n 0 /var/log/messages|");
>
>далее он в цикле
>
>while (<TAIL>) {
>
>обрабатывает каждую появляющуюся строку.
>
>Прекращать работу все равно когда то приходится:
>
>$SIG{TERM} = 'self_destroy';
>sub self_destroy
>{
>        close(TAIL) or warnlog("could not
>shutdown tail process! $!");
>        die("\n");
>}
>
>SIGTERM посланный скрипту не приводит к завершению. Вместо этого скрипт висит вместе
>с tail процессом в ожидании.
>SIGTERM процессу tail помогает, но close(TAIL) получает отрицательный результат, и скрипт с
>руганью таки отваливается.
>
>Возможно ли как нибудь получить PID процесса, порожденного с помощью open()? Или
>можно решить проблему по другому?

Если нужно завершить принудительно в произвольный момент времени, то безусловно написать обработчик сигнала SIGTERM или SIGHUP
А если нужно, что бы скрипт перестал тейлить напричер через N минут
Почитать про функцию alarm
#perldoc -f alarm

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру