pkill
Mata procesos que coincidan con un nombre o patrón.
Sirve para matar uno o varios procesos a partir de su nombre, sin tener que buscar su número de PID. Lo usas cuando una aplicación se queda trabada y quieres cerrarla rápido por nombre.
pkill [opciones] patrónCon -9 o --signal SIGKILL matas el proceso sin darle tiempo a guardar nada. También puede matar más de lo que esperas si el patrón coincide con varios procesos (revisa con pgrep antes).
Despiece
5 ejemplosCerrar un proceso por nombre
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | pkill | Comando | El comando para matar procesos por nombre. |
| 2 | firefox | Valor | Nombre del proceso que quieres cerrar. |
Manda la señal SIGTERM a todos los procesos cuyo nombre contiene firefox.
Cerrar solo los procesos de un usuario
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | pkill | Comando | El comando para matar procesos por nombre. |
| 2 | -u | Opción | Limita la búsqueda a los procesos de un usuario. |
| 3 | juan | Valor | El usuario dueño de los procesos. |
| 4 | firefox | Valor | El nombre del proceso. |
Solo se cierran los firefox de juan; los de otros usuarios siguen abiertos. Para procesos de otro usuario necesitas sudo.
Matar solo por línea completa de comandos
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | pkill | Comando | El comando para matar procesos por nombre. |
| 2 | -f | Opción | Revisa toda la línea de comandos, no solo el nombre. |
| 3 | 'python3 script.py' | Valor | Patrón que aparece en la línea completa que corriste. |
Solo mata los procesos que corren ese script, aunque su nombre sea python3 genérico.
Matar el proceso más reciente
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | pkill | Comando | El comando para matar procesos por nombre. |
| 2 | -n | Opción | Mata solo el proceso más reciente que coincida. |
| 3 | vlc | Valor | Nombre del proceso. |
Solo el último vlc que se abrió recibe SIGTERM.
Forzar cierre cuando no responde
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | pkill | Comando | El comando para matar procesos por nombre. |
| 2 | -9 | Opción | Envía SIGKILL, que no pide que se guarde nada. |
| 3 | firefox | Valor | Proceso a matar por la fuerza. |
Mata firefox sin darle tiempo a guardar pestañas o archivos abiertos.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -f--full | Coincide con toda la línea de comandos, no solo con el nombre del proceso. |
| -c--count | Además de mandar la señal, imprime cuántos procesos coincidieron. No es un modo de prueba: sí los mata. |
| -n--newest | Solo mata el proceso más reciente que coincida. |
| -o--oldest | Solo mata el proceso más antiguo que coincida. |
| -u--uid | Solo mata procesos de ese usuario (puedes poner nombre o UID). |
| -t--terminal | Solo mata procesos que corran en esa terminal. |
| -9--signal KILL | Manda SIGKILL: cierra el proceso a la fuerza, sin dejarlo guardar ni limpiar. Úsalo solo si sin -9 no se cierra. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Matar más procesos de los que querías. | Antes de matar, revisa qué coincide con pgrep -l patrón (o pgrep -af patrón con -f). Usa un patrón más específico, -n/-o, o el PID exacto con kill. |
| Usar -9 sin probar primero. | Prueba pkill sin -9 (manda SIGTERM). Usa SIGKILL solo si no responde. |
| El nombre no coincide con lo que aparece en ps. | Usa -f para buscar en toda la línea de comandos (ruta, argumentos, etc.). |
| No tienes permiso para matar procesos de otro usuario. | Necesitas ser root o usar sudo. Revisa con -u quién los corre. |
Preguntas frecuentes
- ¿Cuál es la diferencia entre pkill y kill?
- kill necesita el número de PID. pkill mata por nombre o patrón, así que no tienes que buscar el PID primero.
- ¿Qué hace pkill sin opciones?
- Manda SIGTERM a todos los procesos cuyo nombre coincida con el patrón que das.
- ¿Cuándo usar -f con pkill?
- Cuando el nombre corto no basta, porque quieres coincidir con argumentos o con el comando completo, como 'python3 script.py'.
- ¿Es seguro usar pkill -9?
- No siempre. SIGKILL no avisa ni deja guardar, puede perder datos. Usa SIGTERM primero y solo -9 si el proceso no responde.
- ¿Cómo veo qué va a matar pkill antes de ejecutarlo?
- Corre pgrep con el mismo patrón y opciones: pgrep -af 'script.py' lista los PID y la línea completa sin matar nada. Ojo: pkill -c no sirve para esto, porque cuenta y además mata.