Hay programas que permiten monitorizar todo un sistema y reiniciar los servicios que se paran o fallan de manera inesperada, todo esto automáticamente. Es el caso de monit, un programa que se ejecuta en segundo plano (daemon) eficaz y que no consume muchos recursos.
Sin embargo hay veces que es más rápido y ligero hacer un pequeño script de bash y ejecutarlo periódicamente con cron. Esto es exactamente lo que he hecho para monitorizar el servidor de base de datos de uno de mis servidores web y reiniciarlo en caso de que se pare. El script:
#!/bin/bash # check if server services are running # and restart them if not # # check mysql server if [ ! -f /var/run/mysqld/mysqld.pid ]; then /etc/init.d/mysql start; fi
Luego debemos añadir script al listado de tareas periódicas del usuario root, bien mediante crontab -e bien directamente en /etc/crontab, ya que iniciar o parar servicios como mysql requiere los privilegios de root para ejecutarse. Por supuesto el archivo debe tener permisos de ejecución.