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