URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4821
[ Назад ]

Исходное сообщение
"Перезапуск демона при logrotate"

Отправлено Chek , 07-Ноя-05 07:39 
Скрипт mailchecks.pl в архиве
http://www.intelkom.su/~chek/mms.tgz
вылавливает проверки ящиков в логе и отправляет время проверки в БД
Хоть и посматривал в mailgraph при написании, но всё равно не могу понять как сделать перезапуск демона автоматом при логротейте без правки конфигов этого самого логротейта.

Содержание

Сообщения в этом обсуждении
"Перезапуск демона при logrotate"
Отправлено mthawk , 09-Ноя-05 12:58 
>Скрипт mailchecks.pl в архиве
>http://www.intelkom.su/~chek/mms.tgz
>вылавливает проверки ящиков в логе и отправляет время проверки в БД
>Хоть и посматривал в mailgraph при написании, но всё равно не могу
>понять как сделать перезапуск демона автоматом при логротейте без правки конфигов
>этого самого логротейта.


Может я не совсем хорошо все понял, но если стоит задача перезапустить демон при наступлении какого-либо события - почему бы не послать демону сигнал в момент наступления события, а в самом деломе описать обработку этого сигнала?


"Перезапуск демона при logrotate"
Отправлено Retif , 30-Дек-05 15:28 
>Скрипт mailchecks.pl в архиве
>http://www.intelkom.su/~chek/mms.tgz
>вылавливает проверки ящиков в логе и отправляет время проверки в БД
>Хоть и посматривал в mailgraph при написании, но всё равно не могу
>понять как сделать перезапуск демона автоматом при логротейте без правки конфигов
>этого самого логротейта.


Гм а каким образом вы производите чтение логов?
Попробуйте создать FIFO ('mkfifo /var/run/parser.fifo') и в конфиге сислога (/etc/syslog.conf) перенаправлять лог туда ('mail.*  /var/run/parser.fifo')

Ну и соттветстввенно скриптом выгребать логи уже из FIFO.

#...
open FIFO, $fifo_file || die;
while($line = <FIFO>)
{
  #Чегото делаем
}
#...

Тогда ротация вам будет нипочем


"Перезапуск демона при logrotate"
Отправлено Дмитрий Ю. Карпов , 03-Янв-06 14:57 
Я ни грамма не понял, про какой демон тут идёт речь. Обычно перезапуск демона осуществляется отправкой ему сингнала SigHup (HangUp), номер сигнала=1. Узнать PID большинства демонов можно по файлу /var/run/имя_демона.pid (у некоторых демонов типа Apache или Squid файл.pid лежит в др.директории); читать из этого файла надо толшько первую строчку (т.к. в следующих м.б. разная информация).