killall
Termina de golpe todos los procesos que tienen cierto nombre.
Manda una señal a todos los procesos que tienen el mismo nombre, sin que busques el PID de cada uno. Lo usas cuando una aplicación se atora con varias copias abiertas. Viene en el paquete psmisc; si te sale command not found, instálalo con sudo apt install psmisc.
killall [opciones] NOMBRE...Mata por nombre y no por PID: si varios programas distintos comparten el mismo nombre, como python3, node o java, killall los cierra todos, incluyendo los que no querías. Revisa antes con pgrep -l NOMBRE, o dale -i para que te pregunte por cada proceso.
Despiece
6 ejemplosCerrar todas las ventanas de una aplicación
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | firefox | Argumento | El nombre del programa que quieres cerrar. |
Manda SIGTERM (señal 15) a todos los procesos llamados firefox: es la petición amable de cerrar, así que el programa puede guardar antes de salir. Si alguno sigue atorado, entonces sí killall -9 firefox.
Preguntar antes de matar
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | -i | Opción | Pide confirmación antes de cada proceso. |
| 3 | -v | Opción | Muestra qué proceso está terminando. |
| 4 | firefox | Argumento | El nombre del programa que quieres cerrar. |
Aparece un Kill firefox(2451) ? (y/N) por cada proceso. Respondes y o n (n es no, y cualquier otra cosa cancela) y killall sigue con el siguiente. Es la forma recomendada cuando el nombre puede coincidir con varios programas.
Forzar el cierre cuando ya no responde
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | -9 | Opción | Manda SIGKILL: el proceso muere en el acto, sin poder guardar nada. |
| 3 | firefox | Argumento | El nombre del programa atorado. |
Los procesos mueren de inmediato, pero pierdes las pestañas abiertas y los archivos sin guardar. Prueba primero sin el -9, que ya manda la señal 15 y deja cerrar el programa bien. killall -s KILL firefox hace exactamente lo mismo.
Cerrar solo lo de un usuario
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | -u | Opción | Limita el cierre a los procesos de ese usuario. |
| 3 | juan | Valor | El usuario dueño de los procesos. |
| 4 | node | Argumento | El nombre del programa a cerrar. |
Solo terminan los procesos de juan; los de otros usuarios no se tocan. Si no te dice Killed ... sino Operation not permitted, es que el proceso es de otro usuario y ahí sí necesitas sudo.
Cerrar un programa con nombre largo
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | -e | Opción | Exige coincidencia exacta del nombre, sin recortarlo. |
| 3 | mi-programa-larguisimo | Argumento | El nombre completo del programa, con todos sus caracteres. |
Linux recorta a 15 caracteres el nombre de cada proceso. Sin -e, killall compararía solo mi-programa-lar y podría cerrar otro programa que empiece igual; con -e solo cierra el que se llama exactamente mi-programa-larguisimo.
Ver los nombres de las señales
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | killall | Comando | El comando que termina procesos por nombre. |
| 2 | -l | Opción | Lista los nombres de las señales y no mata nada. |
Imprime HUP INT QUIT KILL TERM y las demás. Esos son los nombres que aceptas con -s: killall -s INT firefox manda la de interrupción, más suave que la de cierre.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -s--signal=SEÑAL | Manda otra señal en vez de SIGTERM. Por ejemplo -s KILL o -s INT. Sin esta opción envía la 15 (terminación amable). |
| -9 | Atajo para mandar SIGKILL: mata el proceso sin darle tiempo de guardar ni limpiar. |
| -i--interactive | Pregunta Kill? (y/N) antes de cada proceso. La opción más segura cuando no estás seguro de qué vas a matar. |
| -v--verbose | Dice a quién terminó y con qué señal, por ejemplo Killed firefox(2451) with signal 15. |
| -u--user=USUARIO | Solo mata procesos que corran como ese usuario. |
| -l--list | Imprime los nombres de las señales disponibles, como TERM, KILL o INT. No mata nada. |
| -q--quiet | No se queja cuando el nombre no existe. Útil en scripts. |
| -e--exact | Exige que el nombre coincida completo. Sin -e, en nombres de más de 15 caracteres killall solo compara los primeros 15 y podría cerrar otro programa que empiece igual. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Matar más procesos de los que querías. | Los nombres se repiten: killall python3 termina todos los scripts de Python que tengas corriendo, no solo el que se atoró. Revisa primero con pgrep -l python3, o usa -i para que te pregunte antes de cada proceso. |
| Cerrar un programa de nombre largo y llevarse otros parecidos. | Con nombres de más de 15 caracteres, killall sin -e solo compara los primeros 15. Agrega -e para exigir el nombre completo: killall -e mi-programa-larguisimo. |
| Correrlo sin sudo y que no cierre nada. | Solo puedes matar procesos tuyos. Si el nombre estaba bien y sigue sin hacer nada, revisa de quién es el proceso con ps -o user,pid,comm -C NOMBRE. Para un servicio del sistema hace falta sudo: sudo killall -w -v nginx. |
| Confundir el nombre del programa con el del binario que ejecuta. | killall compara contra el nombre del proceso, no contra el script que lo arrancó. Un archivo llamado arranque.py se ejecuta como python3, así que para terminarlo usa killall -e python3 o mejor kill con su PID. |
Preguntas frecuentes
- ¿Cuál es la diferencia entre killall y pkill?
- killall pide el nombre del proceso y termina a todos los que coincidan. pkill acepta un patrón o expresión regular, puede buscar con -f en toda la línea de comandos y deja afinar con opciones como -n (el más reciente) o -o (el más antiguo).
- ¿Cuál es la diferencia entre killall y kill?
- kill necesita el número PID del proceso exacto y es la opción más precisa. killall mata por nombre, lo cual es más rápido pero menos exacto, porque un nombre puede pertenecer a varios procesos.
- ¿Cómo mato todos los procesos de un usuario?
- Con killall -u USUARIO NOMBRE. Por ejemplo killall -u juan node cierra solo los procesos node de juan. Si el usuario no eres tú, necesitas sudo delante.
- ¿Qué hace la opción -i de killall?
- Pide confirmación antes de cada proceso con un Kill firefox(2451) ? (y/N). Solo se termina si respondes y. Úsala siempre que el nombre coincida con algo que no quieras cerrar, como python3 o node.
- ¿Por qué killall dice no process found?
- Porque no hay ningún proceso con exactamente ese nombre. Puede que ya esté cerrado, que el nombre esté mal escrito o que el programa corra con otro nombre: un script de Python aparece como python3. Revisa el nombre real con ps -e -o comm | grep parte-del-nombre.