Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: Anay en 20 Junio 2010, 22:48 pm



Título: Problema con un servicio
Publicado por: Anay en 20 Junio 2010, 22:48 pm
Muy buenas:
A ver si me podeis echar echar una mano.
Tengo un servidor linux en el cual estan corriendo unos servicios 24horas, mi problema es que de vez en cuando (mas o menos 1 vez al dia) uno de dichos servicios da error y se para.
Me gustaria saber si hay algun programa para linux (en concreto ubuntu) que pudiera detectar que dicho servicio se ha parado y lo arrancara de nuevo.
Gracias de antemano.


Título: Re: Problema con un servicio
Publicado por: luinuz en 21 Junio 2010, 03:53 am
Puedes usar el watchdog por defecto en linux, pero eso reiniciaria todo el sistema.
Mas info: http://linux.die.net/man/8/watchdog http://linux.die.net/man/5/watchdog.conf


Tambien puedes hacer un sencillo script que haga el trabajo;

Código:
#!/bin/bash

PROCESO="/etc/init.d/proceso"
RETARDO=60 #intervalo en segundos entre revisiones

while true; do
    sleep $RETARDO
    if [ $(ps aux | grep $PROCESO | wc -l) -lt 1 ]; then
        $PROCESO
    fi
done

Este realmente no es un watchdog completo; el programa se ocupa de (re)lanzar el proceso, pero en caso de bloqueo del equipo o caída de su shell no se relanzaría.
De todas forma como en tu caso el problema es que se para (deja de estar en ejecucion) te valdria perfectamente.


Título: Re: Problema con un servicio
Publicado por: Anay en 21 Junio 2010, 14:51 pm
me vas a perdonar pero no se esactamente que he de hacer con dicho codigo, ¿compilarlo? y luego como hago para que este ooperativo todo el dia ¿lo meto como proceso?
Gracias por la orientación :)


Título: Re: Problema con un servicio
Publicado por: Falso Positivo en 21 Junio 2010, 15:05 pm
me vas a perdonar pero no se esactamente que he de hacer con dicho codigo, ¿compilarlo?

No, es un scrip, solo lo guardas y le pones extensión sh.

y luego como hago para que este ooperativo todo el dia ¿lo meto como proceso?

Si mira el código, una vez que lo ejecuta, quedaría corriendo solito, es recomendable que lo mandes a init.d para que inicie junto con el sistema.

También se podría modificar sacando el retardo del script y simular lo mismo pero con crontab.

Saludos.

:wq!