Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

☬ Cómo matar múltiples procesos a la vez en Bash

☬ Cómo matar múltiples procesos a la vez en Bash

Si queremos matar muchos procesos en GNU/Linux, podemos hacerlo de uno en uno haciendo "kill -9 PID" a cada uno de ellos, pero el proceso puede ser un poco tedioso y pesado.

Os voy a enseñar como matar los procesos de 2 formas diferentes en función de lo que queráis hacer.

 

 

MATAR PROCESOS CON DIFERENTE NOMBRE Y PID

Matar procesos en Bach

Supongamos que queremos matar los procesos de "nmbd -D","php-cgi" y "sshd". Lo que haremos será un Kill -9 a diversos PIDs en la misma línea. Debemos asegurarnos que tenemos privilegios desde nuestro usuario para matar los procesos:

$ kill -9 2224 2293 2294 2295 2748 4170

De esta forma podemos matar todos los procesos a la vez.

Es posible que algunos procesos hijos dependen del proceso padre, como "php-cgi". No sucederá nada malo, lo que sucede es que al mater con kill -9 al proceso padre todos los procesos hijos también se cerrarán y el siguiente kill al PID del hijo fallará porque no encuentra el PID.

 

 

MATAR MUCHOS PROCESOS CON EL MISMO NOMBRE Y/Ó PATRÓN

Si lo que tenemos son muchos procesos que tienen un mismo patrón, como por ejemplo el script que he creado para el tutorial llamado "prueba.sh", lo que podemos hacer es sacar con GREP los procesos que queremos matar, luego con AWK nos quedamos con la segunda columna (PID) y todos esos PIDs los metemos dentro de un bucle FOR para posteriormente hacerles un kill -9.

A continuación se ve el ejemplo ( queremos matar todos los procesos del script prueba.sh):

Matar procesos en Bach

Listado de procesos /tmp/lista.sh

En lugar de tener que hacer kill a cada PID de forma "manual", con el siguiente script lo haremos en una línea y sin apenas trabajo.

$ for i in `ps aux | grep "/tmp/prueba.sh" | awk '{print $2}'`; do kill -9 $i; done

De esta forma podremos matar uno, decenas ó miles de procesos que se hayan quedado colgados.

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Comentarios  

neno
# neno 05-09-2016 14:00
No me ha funcionado
~]# ps -fe|wc -l
7973
~]# for i in `ps aux | grep find | awk '{print $2}'`; do kill -9 $i; done
-bash: kill: (26655) - No such process
~]# ps -fe|wc -l
7973
Responder
Raúl Prieto Fernández
# Raúl Prieto Fernández 05-09-2016 14:44
Hola:

Eso es posiblemente porque los procesos están en un estado "zombie" ó similar que ni con un kill -9 puedas matarlos.

Posiblemente toque reiniciar el equipo.

Un saludo
Responder

Escribir un comentario

     

Código de seguridad
Refescar