Problema con un servicio

Iniciado por Anay, 20 Junio 2010, 22:48 PM

0 Miembros y 1 Visitante están viendo este tema.

Anay

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.

luinuz

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;

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

Anay

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 :)

Falso Positivo

Cita de: Anay en 21 Junio 2010, 14:51 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.

Cita de: Anay en 21 Junio 2010, 14:51 PM
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!
Don't worry, be hacked....