script para reiniciar un proceso en linux si esta parado

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.


#!/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

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.

*/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

Tags de búsquedas:

reiniciar un proceso en linux,linux script creación,proceso de scrip,ejecutar un servicio linux desde una shell,reiniciar proceso linux,reiniciar servicio sh,reiniciar procesos en linux,reiniciar proceso en linux,reiniciar dispositivos bash script,proceso que se reinicia linux,parar todos los servicios linux,verificar si un servidor esta corriendo en linux,reiniciar un proceso parado,servicio de mysql se cae constante,script shell reinicio

Noticias relacionadas »

8 comentarios en script para reiniciar un proceso en linux si esta parado

  1. jorge
    / Responder

    la verdad no me gusto porque se debe pasar el proceso a una variable, seria mejor si se pudiera colocar simplemente el nombre del programa que lo busque y si existe que lo reinicie y listo. Eso si seria mas practico.

  2. Emilio Arenas
    / Responder

    Hola, para confirmar, dices que puede adaptarse a cualquier proceso. Se me para el ventilador/disipador de la cpu pasadas unas horas o en momentos en los que mi sistema requiere mucha memoria (no lo puedo confirmar pero lo parece) ¿Puedo usarlo para revivir el ventilador y que refrigere de nuevo mi chip?

  3. Victor M M M
    / Responder

    me ayudo ya que tenia el mismo problema con el squid

    Gracias, saludos

  4. tonny lopez
    / Responder

    Buenas tardes, tengo virtualizado mi servicio web, pero a veces se detiene y verifico su estado en el servidor con el comando:
    virsh –all este me presenta las maquinas que estan corriendo en ese momento y encuentro que esta corriendo (running). lo unico que siempre tengo que hacer es:

    virsh destroy web y luego virsh start web.
    Es la unica manera que funciona nuevamente. Mi pregunta es si puedo crear un script que me reinicie ese servicio sin necesidad de ser manual, sobre todo los fines de semana?.
    Gracias y atento.

  5. carlos
    / Responder

    Buenas tardes gracias por la info, es de utilidad
    Tengo un pequeno problema, espero que me puedan ayudar.
    Quiero utilizar crontab -e para ejecutar un proceso cada minuto, edito el archivo crontab a travez de la consola, su ubicacion como todos sabemos es /var/spool/cron/crontab/(documento Crontab)
    La linea quedaria asi: */1 * * * * home/(usuario)/Documents/(script).sh
    Y resulta que no se ejecuta, y el script ya lo he probado y funciona bien.
    Gracias por la atencion

  6. carlos
    / Responder

    buenas tardes, gracias por la informacion,

  7. Pingback: Cómo crear un script que vigile el funcionamiento de un proceso | Bokunoshumi

  8. nicolas
    / Responder

    Muy buen contenido

Deja un comentario

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

10$ gratis con Digital Ocean »

Este blog está funcionando con Digital Ocean,
para todos los lectores 10$ gratis! para probar el cloud a través del siguiente enlace.


Ir a Digital Ocean

¡Comparte este artículo! »

Sígueme en Facebook »

  • sdfgsdf sdfgsdf (2 semanas)
    dsfasd sdfas asdf asdfa asdfasdfafa asdfsdewtr fdsfsdfasfwewesfsd sdf ds
  • sdfgsdf sdfgsdf (2 semanas)
    sdfgsdf sdfgsdfgsdf sdfg
  • Luis (1 mes)
    Hola Pedro, muchas gracias por transmitirnos tu conocimiento. Te comento…
  • Senado.es: Vuelta al año 2000 - Yorokobu (1 mes)
    […] desarrollador Pedro Ventura explica en su blog cómo alternativas…
  • Pedro Ventura (1 mes)
    Hola Edwer La manera de como hacerlo viene explicada en…
  • Rodrigo (1 mes)
    Tengo una duda, como hago para no repetir el tweet?…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Plugin en WordPress para cumplir la ley de cookies española

NOTA INFORMATIVA: Por una brecha de seguridad con la fuente origen del CDN el plugin ha sido desactivado de Wordpress.org...

Cerrar