Cuando estamos trabajando en Linux, puede ocurrir que tenemos un proceso vital que siempre debe estar corriendo en background como servicio, por lo que se hace necesario monitorear su actividad para que siempre esté ejecutándose.
El proceso puede llegar a detenerse por algún error de la aplicación o la decisión de algún usuario con privilegios.
En este ejemplo se busca monitorear un proceso en php, que si no está corriendo se a pone a correr de nuevo:
Primero creamos el script de monitoreo /var/www/sc/chatserver.sh :
#!/bin/bash
service=»chatserver.php»
run=$(ps -ef | grep -v grep | grep «$service» | wc -l)
if (( $run > 0 ))
then
exit
else
php /var/www/wss2/chatserver.php &
fi
Es de destacar que service es una variable con la que estamos reconociendo el servicio o proceso que queremos que siempre esté activo.
La línea php /var/www/wss2/chatserver.php &, es un ejemplo de script PHP que se está corriendo desde comando CLI. Este es el proceso que siempre queremos que esté activo, y se corra en el evento en que la variable run sea 0.
En este ejemplo vamos a monitorear cada 2 minutos si el proceso chatserver.php está corriendo, y si no lo está, volverlo a arrancar:
# crontab -l
*/2 * * * * /var/www/sc/chatserver.sh
Este artículo hace parte del servicio de divulgación de conocimiento de ITSoftware SAS.