El comando killall en Linux: terminar procesos por nombre

Introducción

En el entorno de Linux, administrar los procesos en ejecución es una tarea cotidiana para administradores de sistemas, desarrolladores y usuarios avanzados. A veces es necesario detener un programa que se ha quedado colgado, que consume demasiados recursos o que simplemente ya no se necesita. Mientras que el comando kill permite terminar procesos especificando su identificador (PID), existe una alternativa más directa cuando se conoce el nombre del proceso: killall. Este artículo explica en detalle cómo funciona killall, su sintaxis, las opciones más útiles y algunos ejemplos prácticos para usarlo de forma segura y eficiente.

¿Qué es killall?

killall es una utilidad que pertenece al paquete psmisc en la mayoría de distribuciones Linux. Su función principal es enviar una señal a todos los procesos cuyo nombre coincida exactamente con el argumento proporcionado. A diferencia de kill, que actúa sobre un PID específico, killall actúa sobre todos los procesos que comparten el mismo nombre, lo que puede resultar muy práctico cuando se tienen varias instancias de un mismo programa en ejecución.

Sintaxis básica

La forma más simple de usar killall es:

killall nombre_del_proceso

Este comando enviará la señal SIGTERM (número 15) a todos los procesos cuyo nombre sea exactamente nombre_del_proceso. Si el proceso no responde a SIGTERM, se puede escalar a una señal más fuerte como SIGKILL (número 9) usando la opción -s o --signal.

Opciones útiles

  • -s SIGNAL o --signal=SIGNAL: especifica la señal a enviar. Por ejemplo, -s SIGKILL o -9.
  • -i o --interactive: pide confirmación antes de matar cada proceso.
  • -v o --verbose: muestra información sobre los procesos que se están terminando.
  • -e o --exact: requiere una coincidencia exacta del nombre (por defecto killall ignora diferencias de mayúsculas/minúsculas y permite coincidencias parciales hasta cierto longitud).
  • -g o --process-group: mata todo el grupo de procesos en lugar de solo los procesos individuales.
  • -r o --regexp: interpreta el nombre como una expresión regular.
  • -u usuario o --user=usuario: limita la acción a los procesos pertenecientes a un usuario concreto.

Ejemplos prácticos

Imagina que tienes varias ventanas del navegador Firefox colgadas y deseas cerrarlas todas:

killall firefox

Si deseas ver qué procesos se van a afectar antes de actuar, combina la opción -v:

killall -v firefox

Para forzar la terminación inmediata, envía SIGKILL:

killall -s SIGKILL firefox

o su forma abreviada:

killall -9 firefox

Si solo quieres matar los procesos de Firefox que pertenecen al usuario juan:

killall -u juan firefox

En caso de que necesites coincidir con un patrón, por ejemplo terminar todos los procesos que empiecen con chrome (como chrome, chrome-sandbox), puedes usar la opción de expresión regular:

killall -r '^chrome.*'

Finalmente, si prefieres que el sistema te pregunte antes de matar cada proceso, usa el modo interactivo:

killall -i firefox

Precauciones y buenas prácticas

Aunque killall es muy cómodo, su uso indiscriminado puede provocar efectos no deseados. Ten en cuenta los siguientes puntos:

  • Verifica el nombre exacto del proceso. Un error tipográfico podría terminar procesos críticos del sistema.
  • Utiliza la opción -e para exigir coincidencia exacta cuando haya riesgo de confusión con nombres similares.
  • Prefiere enviar primero SIGTERM y esperar unos segundos antes de recurrir a SIGKILL. Esto permite que los procesos liberen recursos y guarden su estado.
  • En sistemas de producción, considera usar pkill con filtros más específicos o revisar la lista de procesos con ps antes de ejecutar killall.
  • Si estás en un entorno multiusuario, limita la acción con la opción -u para evitar afectar a otros usuarios.

Conclusión

El comando killall es una herramienta poderosa y sencilla para terminar procesos en Linux mediante su nombre. Conociendo su sintaxis, sus opciones y las mejores prácticas, puedes administrar eficientemente los procesos de tu sistema sin necesidad de buscar PID individuales. Recuerda siempre actuar con precaución, verificar los objetivos y usar señales suaves antes de recurrir a la fuerza bruta. Con estos conocimientos, estarás mejor preparado para mantener tu entorno Linux estable y responsive.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol