LINUX.ORG.RU

Страховка запущенной проги


0

0

В крон засунул прогу след. содержания:

if `ps o pid,command|grep sync.rb| awk '/\d+/{print($1)}'`;then /usr/local/sbin/dkb2/sync/sync.rb -l /var/log/dkb2/sync.log; fi

запускается каждые две минуты.

если  /usr/local/sbin/dkb2/sync/sync.rb запустить в консоли, - то всё пучком.
Но если вдруг эта прога упадёт!!! (а примерно раз в пару дней она падает), то крон начинает клепать каждые две минуты эту прогу - примерно через 8 часов оператива заканчивается и ...

т.е. если прога запущена кроном, то этот самый крон её не видет!!! (о ужос!)
-----------

Подскажите хороший способ проверки на запущенность программы, тока так, штоб и из под крона им можно было пользоваться.
Спасибо.

сохраняй pid в файл, и пусть прога при запуске проверяет, соответствует ли pid уже запущенному экземпляру твоей проги. если соответствует, новый экземпляр завершается, если нет - переписывает pid-файл и продолжает работу. imho, достаточно надежный способ

friday ★★★
()

Никогда так не делай.
И даже локи не ставь -- это неправильный путь.
Правильный путь -- супервизор типа monit или даже init

Zulu ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.