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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.