]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - inst/afimonio_daemon.sh
algunas comillas para evitar posibles problemas con caracteres escapeables
[z.facultad/75.08/llamadas.git] / inst / afimonio_daemon.sh
index ac0fd0c1269ae96a7c2cb6380c9580edf10e2e2f..b2de03c579e7c8d6995c3e8c3ad6874de47ca412 100755 (executable)
@@ -1,38 +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 -n "Iniciando demonio 'afimonio' en modo daemon ..."
-               nohup "$AFIM_BINDIR/afimonio" > /dev/null &
-               A_PID=`cat "$BASE_DIR/lock/afimonio.pid"`
-               echo " con PID=$A_PID"
+               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")
-               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' ..."
-               A_PID=`cat "$BASE_DIR/lock/afimonio.pid"`
-               kill $A_PID
+               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 "$BASE_DIR/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