From: Leandro Lucarella Date: Sun, 24 Oct 2004 23:24:11 +0000 (+0000) Subject: Varias mejoras: chequea que se levante y se baje de verdad el daemon. Da errores... X-Git-Tag: svn_import~42 X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/commitdiff_plain/00266e4d50b1cfe139aba92e0567fb92666e8a89?hp=39c7bf251463cc305e3e85c6a349ab35262bed9d Varias mejoras: chequea que se levante y se baje de verdad el daemon. Da errores más lindos y hace más chequeos (como no levantarlo si ya está corriendo). --- diff --git a/inst/afimonio b/inst/afimonio index 174c20c..b175dae 100644 --- a/inst/afimonio +++ b/inst/afimonio @@ -96,6 +96,6 @@ while true; do if ! is_lock "antifraude.pl" ; then $BINDIR/antifraude.pl fi - sleep 10 + sleep 5 done #while diff --git a/inst/afimonio_daemon.sh b/inst/afimonio_daemon.sh index b66a922..dac8b97 100755 --- a/inst/afimonio_daemon.sh +++ b/inst/afimonio_daemon.sh @@ -1,35 +1,68 @@ -#!/bin/sh +#!/bin/bash + +# Configuración +WAIT=10 +DAEMON=afimonio + +# --------------- SCRIPT --------------------- BASE_DIR="$HOME/.antifraude" -. "$BASE_DIR/conf/afimonio.conf" +. "$BASE_DIR/conf/$DAEMON.conf" . "$BASE_DIR/util.sh" -help () { - echo "Parámetros válidos : start, stop, status" +ayuda () { + perr "Parámetros válidos : start, stop, status" } case "$1" in "start") - echo -n "Iniciando demonio 'afimonio' en modo daemon ..." - nohup "$AFIM_BINDIR/afimonio" > /dev/null & - echo " (PID=`lock_pid afimonio`)" + echo -n "Iniciando demonio '$DAEMON' en modo daemon... " + if is_lock "$DAEMON"; then + echo "ERROR!" + perr "$DAEMON ya está corriendo (PID=`lock_pid $DAEMON`)." + exit 1 + fi + nohup "$AFIM_BINDIR/$DAEMON" > /dev/null & + for i in `seq $WAIT`; do + if is_lock "$DAEMON"; then + echo "OK! (PID=`lock_pid $DAEMON`)" + exit 0 + fi + sleep 1; + done + # Tardó más de 5 segundos en arrancar, algo anda mal... + echo "ERROR!" + perr "$DAEMON tardó más de $WAIT segundos en arrancar, probablemente haya algún problema." + exit 1 ;; "stop") - if ! is_lock afimonio; then - echo "El demonio no esta corriendo ... Abortando" - exit 0 + echo -n "Parando el demonio '$DAEMON'... " + if ! is_lock "$DAEMON"; then + echo "ERROR!" + perr "$DAEMON no esta corriendo." + exit 1 fi - echo "Parando el demonio 'afimonio' ..." - kill `lock_pid afimonio` + kill `lock_pid $DAEMON` + for i in `seq $WAIT`; do + if ! is_lock "$DAEMON"; then + echo "OK!" + exit 0 + fi + sleep 1; + done + # Tardó más de 5 segundos en parar, algo anda mal... + echo "ERROR!" + perr "$DAEMON tardó más de $WAIT segundos en parar, probablemente haya algún problema." + exit 1 ;; "status") - if is_lock afimonio; then - echo "Afimonio está corriendo actualmente (PID=`lock_pid afimonio`)." + if is_lock "$DAEMON"; then + echo "$DAEMON está corriendo actualmente (PID=`lock_pid $DAEMON`)." else - echo "Afimonio no está corriendo." + echo "$DAEMON no está corriendo." fi ;; - *) help ;; + *) ayuda ;; esac