Guía Sencilla para Usar el Comando kill en Linux

El comando kill es una herramienta esencial en el repertorio de todo usuario de Linux. Sirve para enviar señales a los procesos, lo que nos permite controlarlos o, como su nombre sugiere, «matarlos». Pero no te asustes, el término «matar» en este contexto no es tan violento como parece. En este artículo, aprenderás a usar kill de forma efectiva, incluso si nunca antes has usado la línea de comandos.

Entendiendo las Señales en Linux

Antes de sumergirnos en el uso del comando kill, es esencial comprender las señales en Linux.

¿Qué es una señal?

Las señales son una forma de comunicación entre procesos en un sistema operativo Linux. Permiten que un proceso le indique a otro que realice alguna acción, ya sea detenerse, reiniciarse o incluso terminar.

Tipos Comunes de Señales

  • SIGTERM (15): Esta es la señal por defecto enviada por kill. Le dice al proceso que termine de forma amable, dándole la oportunidad de liberar recursos y guardar datos si es necesario.
  • SIGKILL (9): Es una señal más fuerte que forza al proceso a terminar de inmediato. Es útil cuando un proceso no responde a SIGTERM.
  • SIGSTOP (17,19,23): Detiene (pausa) un proceso.
  • SIGCONT (18,20,24): Continúa un proceso que fue detenido.

Uso Básico del Comando kill

Identificar el ID del Proceso (PID)

Antes de enviar una señal a un proceso, debes conocer su ID de Proceso (PID). Puedes usar comandos como ps, pgrep o top para obtener el PID.

Ejemplo:

ps aux | grep [nombre_del_proceso]

Enviando Señales con kill

Una vez que tengas el PID, puedes enviarle una señal con kill.

Ejemplo:

kill -15 [PID]

Esto enviará la señal SIGTERM al proceso. Si no responde, puedes forzar el cierre con:

kill -9 [PID]

Consejos y Trucos Avanzados

Usando killall

En lugar de buscar el PID y luego matar el proceso, puedes usar killall seguido del nombre del proceso. Esto matará todos los procesos con ese nombre.

Ejemplo:

killall [nombre_del_proceso]

Matar Procesos por Nombre con pkill

Similar a killall, pero puedes usar expresiones regulares para especificar qué procesos matar.

Ejemplo:

pkill -9 -f "nombre*"

Esto matará todos los procesos cuyo nombre comience con «nombre».

Enviando Señales a Grupos de Procesos

Si inicias varios procesos desde una misma shell, pertenecen al mismo grupo. Puedes enviar una señal a todo el grupo usando el PID negativo.

Ejemplo:

kill -TERM -[PID]