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.
⬇️ Compra en Amazon el hardware que utilizo ⬇️
- 💻 Ordenador Portátil: Descúbrelo aquí
- 🖥️🖥️ Monitores: Mis 2 súper monitores
- ⌨️ Teclado: Mini teclado + Lector DNIe
- 🖱️ Ratón: Mi ratón programable
- 🎧 Auriculares: Súper Auriculares TOP!
- 🖨️ Impresora: Mi fantástica impresora
- 🗄️ NAS Backup: Mi NAS para Backups
- 🔌 HUB USB: Mi HUB para puertos USB
- 📱 Smartphone: Mi Smartphone
- 📲 Tablet: Mi tablet para viajes
- ⌚ Smartwatch: Mi Smartwatch favorito
- 📹 Cámara deportiva: Mi cámara para deportes
1.- MATAR PROCESOS CON DIFERENTE NOMBRE Y PID
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 matar 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.
2.- 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):
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!