Foros del Web » Soporte técnico » Sistemas Operativos »

Problemas con bash Script

Estas en el tema de Problemas con bash Script en el foro de Sistemas Operativos en Foros del Web. buenas, Estoy creando un script para matar todos los procesos de una aplicación que está corriendo bajo una Debian Lenny. El Script es el siguiente: ...
  #1 (permalink)  
Antiguo 25/12/2010, 03:46
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 1
Pregunta Problemas con bash Script

buenas,

Estoy creando un script para matar todos los procesos de una aplicación que está corriendo bajo una Debian Lenny. El Script es el siguiente:

Código:
#!/bin/bash

SOC="/usr/local/nagios/var/ndo.sock"

echo "Matando procesos de NDOUtils..."
if [ `ps -fea | grep ndo | grep -v grep |wc -l` != 0   ]
then
        kill -9 `ps -aef | grep ndo | grep -v grep | awk '{print $2}'`
else
        echo "No quedavan mas procesos para matar"
fi

echo "Comprobando si el archivo ndo.sock existe..."
if [ -e $SOC ]
then
        rm /usr/local/nagios/var/ndo.sock
        if [ -e $SOC ]
        then
                echo "Hubo algun error y el archivo no pudo ser borrado"
        else
                echo "El archivo fue borrado satisfactoriamente"
        fi
else
        echo "No se ha encontrado ningun archivo con ese nombre"
fi
El problema es que cuando lo ejecuto el script se para después de matar los procesos, justamente después de ejecutar esta línea

Código:
kill -9 `ps -aef | grep ndo | grep -v grep | awk '{print $2}'`
Devolviéndome la siguiente salida:

Matando procesos de NDOUtils...
Terminado (killed)

Siempre me devuelve la misma salida aunque no existan procesos corriendo y no me hace las comprobaciones para eliminar el archivo .sock

Gracias de antemano
  #2 (permalink)  
Antiguo 25/12/2010, 06:37
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Problemas con bash Script

¿No has probado a usar comillas simples? No digo que esa sea la solución, pero desde luego que esas comillas son algo raras.

Código BASH:
Ver original
  1. kill -9 'ps -aef | grep ndo | grep -v grep | awk '{print $2}' '

Por último, recomendarte que en el echo del primer else, modifiques el mensaje. Tienes una falta de ortografía.

Código BASH:
Ver original
  1. echo "No quedaBan mas procesos para matar"

Un saludo,
gonzo13
  #3 (permalink)  
Antiguo 25/12/2010, 17:10
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Problemas con bash Script

Gracias gonzo13 por tu respuesta, tienes razón se me coló la falta ya esta corregida :D . El problema es que si le meto comillas simples ejecuta todo el script pero no mata los procesos. el menaje que me devuelve es esta:

Código:
Matando procesos de NDOUtils...
./ndoutils.sh: line 10: kill: ps -aef | grep ndo | grep -v grep | awk {print: arguments must be process or job IDs
./ndoutils.sh: line 10: kill: } : arguments must be process or job IDs
Comprobando si el archivo ndo.sock existe...
El archivo fue borrado satisfactoriamente
si le pongo `` por lo menos mata los procesos.
  #4 (permalink)  
Antiguo 25/12/2010, 17:33
 
Fecha de Ingreso: julio-2007
Mensajes: 5
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Problemas con bash Script

Buenas de nuevo parece que he encontrado el problema. No es de código, el código esta perfecto. lo que pasaba es que el fichero se llamaba "ndoutils.sh" y se mataba a si mismo. me he dado cuenta al releer el post. No se como no me he dado cuenta antes, llevaba ya 2 días dándole vueltas comprobando solo el código y sin darme cuenta que era por algo mas simple y lógico. De todas formas gracias.

Etiquetas: bash, debian, linux, matar, procesos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:23.