• Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mi Blog
☬ 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: /

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
Ral Prieto Fernndez
# 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

Información básica sobre Protección de Datos

Responsable: Raúl Prieto Fernández +info

Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info

Legitimación: Consentimiento del interesado +info

Destinatarios: No se comunicarán datos a persona u organización alguna. +info +info

Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. +info

Plazo de conservación de los datos: Hasta que no se solicite su supresión por el interesado.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web raulprietofernandez.net +info

Código de seguridad
Refescar


LOGIN / ENTRAR

BUSCAR EN EL BLOG

TWITTER TIMELINE

Booking.com

ENCUESTA

¿Cual es el mejor Sistema Operativo?

Como es lógico, esta web utiliza cookies propias y de terceros para elaborar información estadística y mostrar publicidad personalizada a través del análisis de tu navegación, conforme a la política de cookies.

  Si continúas navegando, aceptas su uso.