Monitorear un proceso en Linux y arrancarlo si no está corriendo

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.
Procesos Linux
Procesos Linux
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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.