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

Исходное сообщение
"демон и SIGKILL"

Отправлено 0xbb , 31-Мрт-06 23:44 
демон при старте создает файл my_daemon.pid. каким образом при получении сигнала SIGKILL удалить этот файл? читал, что на этот сигнал нельзя повесить свой обработчик...

Содержание

Сообщения в этом обсуждении
"демон и SIGKILL"
Отправлено chip , 02-Апр-06 13:28 
>демон при старте создает файл my_daemon.pid. каким образом при получении сигнала SIGKILL
>удалить этот файл? читал, что на этот сигнал нельзя повесить свой
>обработчик...

Верно, повесить не возможно.

Удалять следует при запуске демона. Т.е. алгоритм примерно таков:
1. Проверяем существует ли my_daemon.pid:
Нет -> создаем и начинаем работу
Да  -> см. п. 2
2. Открываем my_daemon.pid и считываем пид, далее
kill(pid, 0):
если демон существует -> завершаем работу
нет -> записываем свой пид в файл и начинаем работу.


"демон и SIGKILL"
Отправлено jd , 02-Апр-06 19:53 
>2. Открываем my_daemon.pid и считываем пид, далее
>kill(pid, 0):
>если демон существует -> завершаем работу
>нет -> записываем свой пид в файл и начинаем работу.

Желательно также убедиться, что pid, записанный в файле, соответствует именно этому демону.

Ещё один вариант: если демон запускается при старте системы, можно хранить его пид в /var/run (например) и до запуска каких-либо демонов делать rm -f /var/run/*.pid (если уже не делается).