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, чтобы убедиться, что демон работает?

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

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 
  • использование cron для запуска скрипта
  • Просмотр вывода скрипта по ssh в режиме реального времени
  • yum Ошибка: нет модуля с именем site
  • zipimport.ZipImportError: невозможно распаковать данные; zlib недоступно
  • Что такое эквивалент python для grep -v?
  • Операторы печати в реальном времени с тройником в интерактивном скрипте
  • Почему пакет Debian, который я создал для одного сценария Python, пуст?
  • Кросс-компиляция Python
  • systemd daemon & python получает неправильное время
  • Как перезапустить службу systemd после обновления файлов на сервере Gunicorn?
  • Могу ли я копировать выходные данные из мудреца в буфер обмена?
  • Interesting Posts

    Проблема при создании LZ4 из источника: «рецепт для целевого« тест-фуззера »не удался»

    KDE 4.14 на OpenSuse, KDE Thunderbird с надписью «Отправить как электронную почту»

    Как загрузить файл на общий диск с помощью unix?

    Вертикальные линии, соединяющие блоки в Gedit

    Возможно ли запустить два Xorg-сервера Xorg с графикой Intel на одной машине?

    Xvfb не освобождает память

    Есть ли какой-нибудь инструмент, подобный apt-fast для snapcraft?

    Измените правило автозаполнения bash, чтобы исключить определенные имена файлов

    Linux Mint 18 Менеджер обновлений Sarah KDE

    gcc компиляция завершена с помощью «фатальной ошибки: строка: нет такого файла или каталога #include <string>"

    У меня есть команда, не найденная ошибка в моем скрипте оболочки, когда я запускаю код

    В чем разница между параметром grep -e и grep -E?

    Файл Kickstart в виртуальном боксе не загружается

    Как включить файлы, которые исключены в rsync

    OS X, bash: меньше работает над дескрипторами открытых файлов, кошка не

    Linux и Unix - лучшая ОС в мире.