Cron Job для продолжения работы Daemon?

давайте предположим, что у меня есть работа cron:

*/15 * * * * /path/to/thedaemon 

Демон (он является демоном python через from daemon import runner ), не позволяющий использовать несколько экземпляров самого себя, что само по себе довольно приятно. Он пытается инициировать его, пока демон уже запущен, вот результат:

 lockfile.LockTimeout: Timeout waiting to acquire lock for /tmp/thedaemon.pid 

Конечно, задача cron не волнует – она ​​могла бы постоянно сушить команду, так что в случае, если она не работает, она начинает работать. Но это не очень элегантно.

Более элегантно, есть ли способ настроить задание cron, чтобы узнать, запущен ли демон перед его началом? Возможно, короткое ручное if-условие?

Короче говоря, как мне настроить задание cron, чтобы убедиться, что демон работает?

Если вы работаете, ничего не делайте. Если не работает, инициируйте.

  • Пользовательский вывод lsof
  • Строка печати содержит максимальное и минимальное значение
  • Запуск скрипта python 200 000 раз параллельно с использованием bash
  • Ошибка при запуске скрипта Python с использованием cron
  • python == python2 ИЛИ python == python3? Как упаковать, распространять скрипты python py2k?
  • Как проверить статус скрипта оболочки bash при выполнении из сценария Python?
  • Почему я не могу выполнить скрипт только с разрешения на выполнение?
  • Linux - предотвращение сбоя приложения из-за нехватки дискового пространства
  • One Solution collect form web for “Cron Job для продолжения работы Daemon?”

    Вы можете обернуть ваш демон python в сценарий оболочки. При первом запуске проверьте, запущен ли процесс:

     pid=$(cat pid.file) ps -ef | grep $pid | grep <command to start daemon> if [[ $? -eq 0 ]]; then echo "daemon already running" & exit 1 else <command to start daemon> & \ echo $! > pid.file fi 
    Linux и Unix - лучшая ОС в мире.