X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/blobdiff_plain/87be67dc181732bc1d164f616d0490d8438e0704..HEAD:/inst/afimonio_daemon.sh?ds=inline diff --git a/inst/afimonio_daemon.sh b/inst/afimonio_daemon.sh index 64886a8..b2de03c 100755 --- a/inst/afimonio_daemon.sh +++ b/inst/afimonio_daemon.sh @@ -1,32 +1,70 @@ -#!/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 "Iniciando demonio 'afimonio' en modo daemon ..." - nohup "$AFIMONIO_BINDIR/afimonio" & 2>&1 > /dev/null + 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 + echo -n '.' + 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") - echo "Parando el demonio 'afimonio' ..." - A_PID=`cat "$HOME/lock/afimonio.pid"` - kill $A_PID + echo -n "Parando el demonio '$DAEMON' " + if ! is_lock "$DAEMON"; then + echo " ERROR!" + perr "$DAEMON no esta corriendo." + exit 1 + fi + kill `lock_pid $DAEMON` + for i in `seq $WAIT`; do + if ! is_lock "$DAEMON"; then + echo " OK!" + exit 0 + fi + echo -n '.' + 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") - A_PID=`cat "$HOME/lock/afimonio.pid"` - if is_lock "afimonio" ; then - echo "Afimonio está corriendo actualmente (PID=$A_PID)." + 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