script para reiniciar un proceso en linux si esta parado
En este artículo voy a explicar como crear un script en linux con el que podemos reiniciar o arrancar un proceso que se ha parado.
Esto es una solución cuando ya se ha dado el problema de que un proceso se para.
En mi caso he aplicado este script a una máquina donde está ejecutándose memcache, pero por alguna razón que todavía no he determinado, memcached se para, pero es muy importante que memcached esté siempre corriendo porque las sessiones de usuario se guardan en memcache, así como cierta información que tiene que estar cacheada.
Puedes usar la base de este script para adaptarlo al servicio que sea.
Crear el script para reiniciar el proceso
En una carpeta donde guardes todos los shell script crea el archivo check_proceso.sh
En este ejemplo voy a definir que el servicio que quiero reiniciar es memcached pero puede ser cualquier otro.
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
RESTART="/etc/init.d/memcached restart"
PGREP="/usr/bin/pgrep"
MEMCACHED="memcached"
# buscamos que exista el proceso
$PGREP ${MEMCACHED}
# sino existe id de proceso y el comando anterior devuelve 0
if [ $? -ne 0 ]
then
# restablecemos memcached y enviamos un email
$RESTART | mail -s "Memcache Restart en bbdd4 `date "+%c"`" support@pedroventura.com
fi
Configurar el script en un cron
Ahora hay que crear una tarea programada para que ejecute de manera constante el script, para ello lo metemos en el crontab. El cron hay que configurarlo como root porque el script reinicia el proceso y necesita tener privilegios de root.
Ejecuta el siguiente comando
1
crontab -e
Esto abrirá el editor de texto por defecto. Añade la tarea. En este caso vamos a definir que se ejecute cada 5 minutos.
1
*/5 * * * * /bin/sh /root/shell_scripts/check_proceso.sh
Guarda los cambios y ya podrás salir.
Si tienes dudas o preguntas no dudes en dejar un comentario