-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStop_D.sh
executable file
·42 lines (38 loc) · 1.4 KB
/
Stop_D.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#Matar_B
#Procedimiento en bash para la finalizacion brusa de un proceso
#Parametros de ejecucion: ./Matar_B nombreProceso o ./Matar_B idProceso
#Bugs conocidos:
#Porque tantos sed sed '/^$/d'? Porque cada vez que paso a una variable se me mueren los fines de linea y tengo que arrancar de nuevo.
# ----------------------------------
#!/bin/bash
#Chequeamos la cantidad de parametros
if [ $# -ne 1 ]; then
#echo "Parametros de ejecucion: ./Matar_B nombreProceso o ./Matar_B idProceso"
sh "./Grabar_L.sh" "$0" "-e" "Parametros de ejecucion: ./Matar_B nombreProceso o ./Matar_B idProceso"
exit -1
fi
cantidad=`ps -e | grep -E "$1$"`
#echo ${cantidad}
cantidadEncontrada=`echo $cantidad | sed '/^$/d' | wc -l`
#echo ${cantidadEncontrada:-0}
if [ ${cantidadEncontrada:-0} -eq 0 ]; then
#No se esta ejecutando ese proceso
sh "./Grabar_L.sh" "$0" "-i" "El proceso: $1 no se esta ejecutando, no se puede detener."
else
#Saco el resto de la linea
ps -e | grep -E "$1" | sed '/^$/d' > archivoAuxiliarStop_D.tmp
while read linea
do
p_id=`echo ${linea% *}`
p_id=`echo ${p_id% *}`
p_id=`echo ${p_id% *}`
#Se necesitan los 3, NO es un error.
#echo $cantidad
kill ${p_id:-0}
#Escribir en log
sh "./Grabar_L.sh" "$0" "-i" "El proceso: $1 ha finalizado."
#echo "El proceso: $1 ha finalizado" #Escribir en log
done < archivoAuxiliarStop_D.tmp
rm archivoAuxiliarStop_D.tmp
fi
exit 0