-#!/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")
- 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