Я использую cron job для мониторинга и перезапуска других сервисов, если они не работают. Но как контролировать / перезапускать сам crond?

2 ответа2

2

Вам потребуется либо система инициализации (runit , systemd и т.д.), Которая может следить за процессом и (при соответствующей конфигурации) перезапустить демон после сбоя, либо запустить какой-либо другой демон, который проверяет, запущен ли процесс cron и, если не перезапускает его (monit , любое управление конфигурацией, которое запускает локальный агент, такой как CFEngine и т. д.).

0

Хорошо наблюдать за наблюдателями с помощью сторожевого сценария с бесконечным циклом и помещать его в /etc/rc.local или аналогичный файл запуска.

#!/bin/bash
for service in crond httpd whatever
do
if [ `pgrep $service` = '' ]
   then
   service $service restart
   # OR
   # systemctl restart service
   fi
sleep 3
done

Конечно, этот простой пример работает только в том случае, если процесс и сценарий запуска службы имеют одинаковое имя. но вы можете исправить это, чтобы соответствовать вашим требованиям

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .