Sim, a melhor maneira de lidar com isso é usando um utilitário de controle de tarefas como o Monit . Ele está disponível para o CentOS e é uma maneira limpa de garantir que seus daemons estejam em execução quando necessário, e pode ser usado para iniciar / interromper grupos individuais ou de serviços em um agendamento (via cron) ... O exemplo em que vejo o cron cair através das rachaduras é quando algo acontece dentro da janela de serviço (falha do aplicativo, etc)
Veja um exemplo com o serviço de impressão do CUPS ...
Em um arquivo de configuração do Monit em algum lugar, eu teria uma sub-rotina definindo o serviço CUPS, incluindo seus comandos PID e start e stop.
check process cups
with pidfile "/var/run/cupsd.pid"
start program = "/sbin/service cups start"
stop program = "/sbin/service cups stop"
executando monit status
Process 'cups'
status Running
monitoring status Monitored
pid 2357
parent pid 1
uptime 8d 6h 43m
.
.
data collected Mon, 13 Aug 2012 09:07:03
A execução de monit stop cups
interrompe o serviço ...
Process 'cups'
status Not monitored
monitoring status Not monitored
data collected Mon, 13 Aug 2012 09:08:03
monit start cups
inicia. Eu costumo adicionar os comandos start e stop monit no crontab para lidar com a inicialização e o desligamento do aplicativo. A Monit garantirá que o serviço também esteja em execução durante esses horários (por exemplo, após uma reinicialização no meio do dia) ...