демон при старте создает файл my_daemon.pid. каким образом при получении сигнала SIGKILL удалить этот файл? читал, что на этот сигнал нельзя повесить свой обработчик...
>демон при старте создает файл my_daemon.pid. каким образом при получении сигнала SIGKILL
>удалить этот файл? читал, что на этот сигнал нельзя повесить свой
>обработчик...Верно, повесить не возможно.
Удалять следует при запуске демона. Т.е. алгоритм примерно таков:
1. Проверяем существует ли my_daemon.pid:
Нет -> создаем и начинаем работу
Да -> см. п. 2
2. Открываем my_daemon.pid и считываем пид, далее
kill(pid, 0):
если демон существует -> завершаем работу
нет -> записываем свой пид в файл и начинаем работу.
>2. Открываем my_daemon.pid и считываем пид, далее
>kill(pid, 0):
>если демон существует -> завершаем работу
>нет -> записываем свой пид в файл и начинаем работу.Желательно также убедиться, что pid, записанный в файле, соответствует именно этому демону.
Ещё один вариант: если демон запускается при старте системы, можно хранить его пид в /var/run (например) и до запуска каких-либо демонов делать rm -f /var/run/*.pid (если уже не делается).