Linux

¿Qué es pkill en Linux y cómo usarlo para cerrar procesos?

octubre 22, 2026 Qué es mejor? 7 min read
¿Qué es pkill en Linux y cómo usarlo para cerrar procesos?

La respuesta corta: qué hacer según tu caso

Para la mayoría de las personas, basta con pkill firefox (envía SIGTERM, señal 15) y, si el programa sigue colgado, escalar a pkill -9 firefox (SIGKILL, señal 9). Si tienes un PID exacto a mano, kill <PID> es más preciso y evita matar nada de más. Si quieres liquidar de un plumazo todos los procesos con un nombre exacto, killall es la herramienta adecuada. En resumen: PID conocido → kill; nombre o patrón → pkill; nombre exacto y quieres barrerlos todos → killall.

Qué necesitas tener antes de empezar

Necesitas una distribución Linux con el paquete procps o procps-ng instalado, que es donde viven pkill, pgrep, kill y killall. En Ubuntu y Debian se instala con sudo apt install procps; en RHEL, Fedora y derivadas, con sudo dnf install procps-ng. Con permisos de tu propio usuario puedes cerrar tus procesos; para los de otros usuarios o del sistema hace falta sudo. También conviene una terminal con acceso a ps, pgrep y who, ya que who te dice en qué pts/ está conectado cada usuario si quieres usar -t.

pkill frente a kill y killall: cuándo va cada uno

Criterio de selección Señal por defecto Admite patrón Admite expresión regular Riesgo de sobrado
kill SIGTERM (15) No, se identifica por PID No Bajo si verificas el PID
pkill SIGTERM (15) Sí (predicado de shell, no regex) Sí, con --older 1m y similares; el patrón en sí es glob, no regex Medio-alto si el patrón es ancho
killall SIGTERM (15) Sí, pero solo coincidencia exacta con -e No Medio: sin -i distingue mayúsculas

Las tres herramientas comparten el mismo mecanismo: escriben en /proc/<pid>/status para entregar la señal, así que requieren los mismos permisos.

Cómo decidir en cinco segundos

PID exacto a la vista → kill <PID>. Nombre de proceso o fragmento → pkill. Nombre exacto y quieres todos → killall. La regla cabe en una sola línea y es la que más se usa en el día a día.

Sintaxis y las señales que de verdad vas a usar

La forma general es pkill [opciones] [patrón]. El patrón se compara por defecto contra el nombre del proceso (el campo comm de /proc/<pid>/status, 15 caracteres como tope). Si usas -f, se compara contra la línea de comando completa (cmdline). Tres señales cubren el 99 % de los casos:

Señal Número Comportamiento
HUP 1 Pide al proceso que relea su configuración (lo usa Nginx y Apache)
TERM 15 Cierre limpio: el programa puede guardar y salir (por defecto)
KILL 9 Cierre inmediato sin limpieza: el kernel mata el proceso sin darle margen

Las tres se pueden invocar de tres formas equivalentes: por número (-9), por nombre con prefijo (--signal KILL) o por nombre sin prefijo (-KILL).

Opciones clave de pkill, una por una

  1. -f: compara contra la línea de comando completa, útil cuando el nombre del binario no basta (por ejemplo, pkill -f "python mi_script.py").
  2. -u usuario: limita a un usuario; admite varios separados por coma, como -u mark,www-data.
  3. -t terminal: filtra por terminal, ideal para matar lo que se colgó en pts/1 con -t pts/1.
  4. -x: obliga a coincidencia exacta del nombre, evitando matar nada que lo contenga como subcadena.
  5. -i: ignora mayúsculas y minúsculas al comparar el patrón.
  6. -n y -o: -n mata solo el más reciente; -o solo el más antiguo.
  7. --signal (o -s): cambia la señal por defecto; se usa sobre todo con HUP para recargar servicios o con KILL cuando TERM no responde.

El hábito que evita disgustos: previsualizar con pgrep

  1. Ejecuta pgrep -a patrón para ver PID y línea de comando de cada proceso que coincidirá.
  2. Si quieres un resumen, añade -c para que solo imprima cuántos caerían.
  3. Si la lista es la esperada, repite el mismo patrón con pkill; si no, ajusta.

El patrón por defecto es un glob de shell, no una expresión regular: * y ? funcionan, pero clases como [a-z] no.

Cuatro usos reales que cubren el 90 % del día a día

  1. Cerrar Firefox colgado: pkill firefox. Si no responde, escala a pkill -9 firefox. Es el caso más común y el que mejor ilustra el flujo TERM → KILL.
  2. Recargar Nginx sin reiniciar el servicio: pkill -HUP nginx. Nginx relee su configuración al recibir SIGHUP, por lo que no hay caída.
  3. Matar todo lo de un usuario en una terminal concreta: pkill -u mark -t pts/1. Útil cuando una sesión SSH remota se queda colgada.
  4. Matar por comando completo: pkill -f "ping 8.8.8.8". Si tienes varios pings largos y solo quieres cerrar uno concreto, este patrón apunta a la línea exacta.

Errores frecuentes y cómo no romper el sistema

  • Patrones demasiado genéricos: pkill python puede tumbar tu sesión si el propio shell u otras herramientas usan ese intérprete. Mejor pgrep -a python antes y -x cuando se pueda.
  • Usar -9 a la primera: -KILL no permite al proceso guardar datos ni cerrar descriptores, así que puede dejar ficheros a medio escribir o sockets colgados. Reserva -9 para cuando TERM ha fallado tras unos segundos.
  • Olvidar comillas en -f: pkill -f ping 8.8.8.8 interpreta cuatro argumentos y mata procesos cuyo nombre sea ping. Usa siempre pkill -f "ping 8.8.8.8".
  • Matar el propio shell o procesos críticos del sistema: si ejecutas pkill -u root en un servidor puedes dejar el sistema sin servicios esenciales. Limita con -u TU_USUARIO y, si dudas, -l antes de matar para listar.
  • No verificar antes con pgrep: salta directamente a pkill con un patrón ancho y termina matando algo que no debía.

Tabla resumen: pkill de un vistazo

Herramienta Criterio de selección Señal por defecto Patrón/regex Ejemplos de uso Cuándo elegirla Cuándo evitarla
pkill Nombre o fragmento del proceso TERM (15) Glob por defecto; -f para línea de comando pkill firefox, pkill -u mark, pkill -HUP nginx Cierres masivos por nombre, recargar daemons, matar por usuario o terminal Patrones muy genéricos sin previsualizar con pgrep
kill PID conocido TERM (15) No usa patrón kill 1234, kill -9 1234 Cuando tienes el PID exacto y quieres máxima precisión Cuando no conoces el PID o tienes varios procesos iguales
killall Nombre exacto, todos los coincidentes TERM (15) Coincidencia exacta, no regex killall nginx, killall -i httpd Barrer todos los procesos con un nombre exacto, como al rotar un servicio Cuando el patrón es aproximado o quieres limitar por usuario/terminal

Datos comprobados en octubre de 2026.

Preguntas frecuentes sobre pkill en Linux

1. ¿Qué diferencia hay entre pkill y kill en Linux?

kill cierra un proceso usando su PID numérico, mientras que pkill lo cierra por nombre o patrón sin que tengas que buscarlo antes. Para casos puntuales, kill es más preciso; para matar varios procesos a la vez (por ejemplo, todos los chromium), pkill es más rápido.

2. ¿Se puede usar pkill indicando el ID de un proceso?

No: pkill trabaja con nombres de proceso, no con PID. Si necesitas actuar por ID, usa kill seguido del número (kill 4582) o su variante kill -9 4582 cuando el proceso no responde.

3. ¿Qué es pkill en Linux?

pkill es un comando que envía señales a procesos filtrándolos por nombre, usuario u otros atributos, en vez de por su número identificador. Forma parte del paquete procps y suele estar disponible por defecto en cualquier distribución.

4. ¿Cómo matar un proceso en Linux conociendo su PID?

Primero localiza el PID con ps aux | grep programa o pgrep programa, y después ejecuta kill 1234 sustituyendo 1234 por el número que obtengas. Si el proceso sigue vivo, añade la señal -9 para forzar el cierre: kill -9 1234.

5. ¿Cómo cerrar un proceso en Linux usando su número de proceso?

El método directo es ejecutar kill seguido del PID, por ejemplo kill 7821. Para ver el PID, usa pgrep nombre o ps -ef | grep nombre; si quieres forzar el cierre, usa kill -9 7821.

6. ¿Qué comando se usa para terminar un proceso en Linux?

Los más habituales son kill, que actúa por PID, y pkill o killall, que actúan por nombre. La señal por defecto es SIGTERM (15), que pide al proceso cerrarse de forma limpia; SIGKILL (9) lo corta sin contemplaciones.

7. ¿Cómo se usa pkill con un ejemplo real?

Para cerrar todos los procesos de Firefox escribe pkill firefox; para forzar el cierre cuando cuelga, añade la señal: pkill -9 firefox. Si quieres ver qué procesos serán afectados antes de mandar la señal, ejecuta primero pgrep -l firefox.

8. ¿Se puede cerrar un proceso con pkill indicando su PID?

No, pkill no acepta un PID como argumento; está pensado para nombres o patrones. Para cerrar por PID usa kill 4321, o si prefieres un atajo con la misma idea que pkill, recurre a killall nombre_proceso.

Fuentes

  1. SplunkDetection: Linux Impair Defenses Process Killconsultado el 13/10/2026
  2. LinuxtodayLinux pkill Command Tutorial for Beginners (5 Examples)consultado el 13/10/2026
  3. GithubGitHub – fosskers/pkill: Terminate processes/programs by their name …consultado el 13/10/2026
  4. Diepkill(1) – Linux man pageconsultado el 13/10/2026
  5. ContaboKill Processes in Linux: A SysAdmin's Guide – Contaboconsultado el 13/10/2026