Kill. Me he quedado con tu nombre


Últimamente tengo una series de procesos que tengo que matar recurrentemente y de los que me he quedado con el nombre. Así que vamos a ver si conseguimos sistematizar la operativa para crear un pequeño script para ahorrarme trabajo.

Lo primero, identificar los procesos que tenemos.

  • ps -ef (ps extrae los procesos, -e para verlos todos, -f para ver la orden completa y no sólo el inicio).
De estos procesos vamos a extraer los procesos a identificar. Son los correspondientes al internet explorer corriendo con ie4linux: ie6, wine, IEXPLORER. Para hacerlo le lanzamos la salida del ps a un grep (extrae las línea de la entrada que coinciden con un patrón).
  • ps -ef | grep -i -E ie6|wine|iexplore
Para ello usamos el famoso pipe “|” que nos envía la salida del ps al grep. Con “-i” ignoramos las mayusculas/minúsculas, con “-E” conseguimos que valore las expresiones regulares y con “” escapamos el caracter de control “|” de forma que lo usamos como un “OR”. Ahora vamos a quitar el proceso que corresponde al grep.
  • ps -ef | grep -iE ie6|wine|iexplore | grep -v grep
Con la opción -v quitamos todo aquello que contenga la palabra grep. Y ahora vamos a seleccionar sólo los códigos de los procesos, para eso utilizaremos “awk”.
  • ps -ef | grep -iE ie6|wine|iexplore | grep -v grep | awk ‘{print $2 }’
Ahora vamos a intentar enviar esto a un “kill -9” y así matar los procesos. Llegados a este punto es cuando me doy cuenta que he hecho el tonto, al consultar la ayuda de kill.
  • man kill
Pues resulta que hay dos comandos que hacen lo que estaba buscando: pgrep (obtiene procesos a partir de un nombre) y pkill (mata procesos a partir de un nombre). Así que lo que estaba intentando hacer se queda en:
  • pgrep -f ie6|wine|IEXPLORE
  • pkill -9 -f ie6|wine|IEXPLORE
Ahora ya sólo queda incluirlo en un script o en un lanzador de aplicaciones y estos procesos tienen los días contados.

Actualización: Para enviar los parámetros a kill se emplea xargs. De forma que la línea de comando para matar los procesos en la primera opción es:

  • ps -ef | grep -iE ie6|wine|iexplore | grep -v grep | awk ‘{print $2 }’| xargs kill -9
Compartir
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *