X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/blobdiff_plain/a7e48e8da9fb186676cb4f5b5b0bdf8be4684cdb..ae3e2a0e180b3db5a1a3ea7c6ed9381eff395d46:/doc/Informe7508.lyx diff --git a/doc/Informe7508.lyx b/doc/Informe7508.lyx index 40997c4..08b52c0 100644 --- a/doc/Informe7508.lyx +++ b/doc/Informe7508.lyx @@ -2751,6 +2751,402 @@ clean_log() } \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