Como reiniciar automaticamente o crond se ele não estiver em execução?

Como reiniciar automaticamente o crond se ele não estiver em execução?

Eu uso o cron job para monitorar e reiniciar outros serviços se eles não estiverem em execução. Mas como monitorar/reiniciar o próprio crond?

Responder1

Você precisará de um sistema init ( runit, systemd, etc.) que possa controlar o processo e (com configuração apropriada) reiniciar o daemon após uma falha ou executar algum outro daemon que verifique se o processo cron está em execução e, se não, reinicia it ( monit, qualquer gerenciamento de configuração que execute um agente local como CFEngine, etc.).

Responder2

É bom observar os observadores com um script watchdog de loop infinito e colocá-lo em /etc/rc.local ou em um arquivo de inicialização semelhante.

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

É claro que este exemplo simples só funciona se o processo do serviço e o script de inicialização do serviço compartilharem o mesmo nome. mas você pode corrigi-lo para atender às suas demandas

informação relacionada