LINUX.ORG.RU
сделать чтобы он особо обрабатывал сигнал типа HUP?

либо сделать чтобы он постоянно обновлял pid файл -- и проверять его mtime. Так как /var/run у всех нормальных людей смонтирован на tmpfs, то нагрузка невелика.

dilmah ★★★★★
()
использовать libdaemon
grob ★★★★★
()
Ну проверить то просто - послать нулевой сигнал, афаик, если вызов завершился успешно, значит жив.
Legioner ★★★★★
()
Можно конкретнее, о каком PID-файле идет речь? О том, который создается init-скриптом прт запуске демона?
mutronix ★★★★
()
Ответ на: комментарий от mutronix
> Можно конкретнее, о каком PID-файле идет речь? О том, который создается init-скриптом прт запуске демона?

Не совсем. Программа сама создаёт pid-файлы, по одному на каждый процесс (процессов может быть запущено несколько с разными конфигурациями). При нормальном завершении она их удаляет, но если её "прибили" неправильно (или она сама упала) его, естественно, никто не удаляет. Вопрос - как отличить "живой" pid-файл от "мёртвого"? Послать нулевой сигнал, конечно, вариант - но если там, как уже говорилось, другой процесс?

Такой вопрос: а если процесс будет держать на этот файл блокировку - она снимется если процесс прибьют по kill -9? Потому как это бы как раз решило все проблемы...

slav ★★★
() автор топика
Ответ на: комментарий от slav
> но если там, как уже говорилось, другой процесс?

Нужно смотреть его PPID. Инфу можно взять из /proc/PID/status (поля Name и PPid)

mutronix ★★★★
()
ps -p `cat pidfile` && echo live || echo died
vany
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.