]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - doc/Informe7508.lyx
Agrego afimonio_daemon.sh y creo que con eso está finiquitado el informe.
[z.facultad/75.08/llamadas.git] / doc / Informe7508.lyx
index 40997c4ead077e3f5e6b94f3ffa0df365727f8f0..08b52c020129b2c927f76d2584a79d574d3195bd 100644 (file)
@@ -2751,6 +2751,402 @@ clean_log()
 }
 \layout Section
 
 }
 \layout Section
 
+AFIMONIO_DAEMON.SH
+\layout Subsection
+
+Tipo de comando
+\layout Standard
+
+Auxiliar, escrito en 
+\family typewriter 
+bash
+\family default 
+.
+\layout Subsection
+
+Justificación de su uso
+\layout Standard
+
+Sirve para correr 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+ en segundo plano, desasociado de la terminal.
+\layout Subsection
+
+Archivos de Input
+\layout Standard
+
+Ninguno, toma los datos necesarios por la entrada estándar, aunque es común
+ redireccionarle el archivo 
+\family typewriter 
+oridesti.txt
+\family default 
+.
+ De la entrada estándar toma los códigos de origen y destino.
+ Cada código debe encontrarse en una línea y al comienzo de ésta.
+ Sólo toma los 2 primeros caracteres, e ignora el resto de la línea (para
+ compatibilidad con el archivo oridesti.txt).
+\layout Subsection
+
+Archivos de Output
+\layout Standard
+
+Crea una cantidad 
+\family typewriter 
+N
+\family default 
+ (especificada por el usuario) de archivos con nombre y formato de 
+\emph on 
+Archivo de Llamadas
+\emph default 
+ en el directorio actual.
+ Tanto el nombre como la cantidad de líneas y su contenido es generado aleatoria
+mente (respetando el formato mencionado y con valores racionales).
+\layout Subsection
+
+Parámetros
+\layout Standard
+
+La invocación es al estilo SysV, tomando como parámetro la acción a realizar,
+ que puede ser:
+\layout Description
+
+start Arranca el 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+.
+\layout Description
+
+stop Detiene el 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+.
+\layout Description
+
+status Indica si 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+ está corriendo o no.
+\layout Subsection
+
+Opciones
+\layout Standard
+
+Al comienzo del script, abajo de 
+\family typewriter 
+Configuración
+\family default 
+, se pueden cambiar algunas variables:
+\layout Description
+
+WAIT Cantidad de segundos a esperar para que arranque o se detenga 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+ antes de asumir un error.
+\layout Description
+
+DAEMON Nombre del programa a ejecutar.
+ Este programa es lo suficientemente genérico como para correr cualquier
+ comando en modo 
+\emph on 
+daemon
+\emph default 
+, por eso se provee una variable de configuración para cambiar el comando
+ a ejecutar.
+\layout Subsection
+
+Ejemplos de invocación
+\layout Subsubsection
+
+
+\family typewriter 
+./afimonio_daemon.sh start
+\layout Standard
+
+Arranca el 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+.
+\layout Subsubsection
+
+
+\family typewriter 
+./afimonio_daemon.sh stop
+\layout Standard
+
+Detiene el 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+.
+\layout Subsubsection
+
+
+\family typewriter 
+./afimonio_daemon.sh status
+\layout Standard
+
+Si 
+\family typewriter 
+\series bold 
+afimonio
+\family default 
+\series default 
+ está corriendo lo indica con un mensaje y muestra su PID.
+ Si no está corriendo da otro mensaje indicándolo.
+\layout Subsubsection
+
+
+\family typewriter 
+./afimonio_daemon.sh
+\layout Standard
+
+Da un mensaje de ayuda.
+\layout Subsection
+
+Código Fuente
+\layout LyX-Code
+
+#!/bin/bash
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Configuración
+\layout LyX-Code
+
+WAIT=10
+\layout LyX-Code
+
+DAEMON=afimonio
+\layout LyX-Code
+
+\layout LyX-Code
+
+# --------------- SCRIPT ---------------------
+\layout LyX-Code
+
+BASE_DIR="$HOME/.antifraude"
+\layout LyX-Code
+
+.
+ "$BASE_DIR/conf/$DAEMON.conf"
+\layout LyX-Code
+
+.
+ "$BASE_DIR/util.sh"
+\layout LyX-Code
+
+\layout LyX-Code
+
+ayuda () {
+\layout LyX-Code
+
+        perr "Parámetros válidos : start, stop, status"
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+case "$1" in
+\layout LyX-Code
+
+        "start")
+\layout LyX-Code
+
+                echo -n "Iniciando demonio '$DAEMON' en modo daemon "
+\layout LyX-Code
+
+                if is_lock "$DAEMON"; then
+\layout LyX-Code
+
+                        echo " ERROR!"
+\layout LyX-Code
+
+                        perr "$DAEMON ya está corriendo" 
+\backslash 
+
+\layout LyX-Code
+
+                             "(PID=`lock_pid $DAEMON`)."
+\layout LyX-Code
+
+                        exit 1
+\layout LyX-Code
+
+                fi
+\layout LyX-Code
+
+                nohup "$AFIM_BINDIR/$DAEMON" > /dev/null &
+\layout LyX-Code
+
+                for i in `seq $WAIT`; do
+\layout LyX-Code
+
+                        if is_lock "$DAEMON"; then
+\layout LyX-Code
+
+                                echo " OK! (PID=`lock_pid $DAEMON`)"
+\layout LyX-Code
+
+                                exit 0
+\layout LyX-Code
+
+                        fi
+\layout LyX-Code
+
+                        echo -n '.'
+\layout LyX-Code
+
+                        sleep 1;
+\layout LyX-Code
+
+                done
+\layout LyX-Code
+
+                # Tardó más de 5 segundos en arrancar, algo anda mal...
+\layout LyX-Code
+
+                echo "ERROR!"
+\layout LyX-Code
+
+                perr "$DAEMON tardó más de $WAIT segundos en arrancar,"
+\backslash 
+
+\layout LyX-Code
+
+                     "probablemente haya algún problema."
+\layout LyX-Code
+
+                exit 1
+\layout LyX-Code
+
+        ;;
+\layout LyX-Code
+
+        "stop")
+\layout LyX-Code
+
+                echo -n "Parando el demonio '$DAEMON' "
+\layout LyX-Code
+
+                if ! is_lock "$DAEMON"; then
+\layout LyX-Code
+
+                        echo " ERROR!"
+\layout LyX-Code
+
+                        perr "$DAEMON no esta corriendo."
+\layout LyX-Code
+
+                        exit 1
+\layout LyX-Code
+
+                fi
+\layout LyX-Code
+
+                kill `lock_pid $DAEMON`
+\layout LyX-Code
+
+                for i in `seq $WAIT`; do
+\layout LyX-Code
+
+                        if ! is_lock "$DAEMON"; then
+\layout LyX-Code
+
+                                echo " OK!"
+\layout LyX-Code
+
+                                exit 0
+\layout LyX-Code
+
+                        fi
+\layout LyX-Code
+
+                        echo -n '.'
+\layout LyX-Code
+
+                        sleep 1;
+\layout LyX-Code
+
+                done
+\layout LyX-Code
+
+                # Tardó más de 5 segundos en parar, algo anda mal...
+\layout LyX-Code
+
+                echo "ERROR!"
+\layout LyX-Code
+
+                perr "$DAEMON tardó más de $WAIT segundos en parar," 
+\backslash 
+
+\layout LyX-Code
+
+                     "probablemente haya algún problema."
+\layout LyX-Code
+
+                exit 1
+\layout LyX-Code
+
+        ;;
+\layout LyX-Code
+
+        "status")
+\layout LyX-Code
+
+                if is_lock "$DAEMON"; then
+\layout LyX-Code
+
+                        echo "$DAEMON está corriendo actualmente" 
+\backslash 
+
+\layout LyX-Code
+
+                             "(PID=`lock_pid $DAEMON`)."
+\layout LyX-Code
+
+                else
+\layout LyX-Code
+
+                        echo "$DAEMON no está corriendo."
+\layout LyX-Code
+
+                fi
+\layout LyX-Code
+
+        ;;
+\layout LyX-Code
+
+        *) ayuda ;;
+\layout LyX-Code
+
+esac
+\layout Section
+
 CALLGEN
 \layout Subsection
 
 CALLGEN
 \layout Subsection