Comando kill

kill

El comando kill permite enviar señales a un proceso. Aunque normalmente se utiliza para finalizar procesos, también puede enviar otros tipos de señales para detenerlos temporalmente, reanudarlos o solicitar que se recarguen.

Categoría Procesos y servicios
Disponible en Linux, macOS y otros sistemas Unix
Equivalente en Windows taskkill
¿Requiere permisos de administrador? Solo para finalizar procesos pertenecientes a otros usuarios o procesos del sistema.

¿Qué significa su nombre?

El nombre kill significa literalmente "matar".

Sin embargo, el comando no siempre termina un proceso. En realidad, su función consiste en enviar una señal, y dependiendo de cuál sea esa señal, el proceso podrá finalizar, detenerse, reanudarse o realizar otra acción.

¿Para qué sirve?

Se utiliza para enviar señales a procesos identificados mediante su PID (Process ID).

Es muy útil cuando un programa deja de responder o cuando un administrador necesita detener un servicio o aplicación.

Sintaxis

kill [señal] PID

Señales más utilizadas

Comando Descripción
kill PID Envía la señal SIGTERM (15), solicitando finalizar el proceso.
kill -15 PID Equivalente a la anterior.
kill -9 PID Envía SIGKILL. Finaliza inmediatamente el proceso.
kill -STOP PID Pausa el proceso.
kill -CONT PID Reanuda un proceso detenido.
kill -l Muestra todas las señales disponibles.

Equivalencia con otros sistemas

Linux Windows
kill PID taskkill /PID PID
kill -9 PID taskkill /F /PID PID

Ejemplos de uso

Finalizar un proceso correctamente

kill 3254

Forzar la finalización de un proceso

kill -9 3254

Pausar un proceso

kill -STOP 3254

Reanudar un proceso

kill -CONT 3254

Consultar todas las señales

kill -l

Ejemplo de uso completo

ps aux | grep firefox

santi   3254  4.8  firefox

kill 3254

¿Cómo interpretar la salida?

Si el comando no muestra ningún mensaje, normalmente significa que la señal se ha enviado correctamente.

Si el proceso no responde a SIGTERM, puede ser necesario utilizar SIGKILL (kill -9).

Errores habituales

  • Utilizar kill -9 como primera opción.
  • Confundir el PID del proceso.
  • Finalizar procesos críticos del sistema.
  • Pensar que kill solo sirve para "matar" procesos.

Conceptos relacionados

  • Proceso
  • PID
  • Señal (Signal)
  • SIGTERM
  • SIGKILL
  • Multitarea

Comandos relacionados

Comando Relación
ps Obtiene el PID del proceso.
top Permite localizar procesos antes de finalizarlos.
htop Permite finalizar procesos desde una interfaz interactiva.
killall Finaliza procesos indicando su nombre.
pkill Finaliza procesos mediante patrones de búsqueda.

Comandos que suelen confundirse

Comando Diferencia
kill Actúa sobre un PID.
killall Actúa sobre el nombre del proceso.
pkill Busca procesos mediante patrones y les envía una señal.
taskkill Equivalente en Windows.

Uso habitual en administración de sistemas

ps aux | grep apache
kill 2485

kill -9 2485

kill -STOP 2485
kill -CONT 2485

¿Cuándo lo utilizaría un administrador de sistemas?

  • Cuando un programa deja de responder.
  • Para detener un proceso antes de actualizar una aplicación.
  • Para reiniciar servicios manualmente.
  • Durante tareas de mantenimiento.
  • Para detener procesos que consumen demasiados recursos.

Curiosidades

Aunque muchos usuarios creen que kill siempre elimina un proceso, en realidad el comando simplemente envía una señal. La señal por defecto es SIGTERM, que solicita al programa que finalice correctamente. Solo SIGKILL (-9) obliga al sistema operativo a terminar el proceso inmediatamente.


Prácticas propuestas

  1. Abre un programa (por ejemplo, un editor de texto) y localiza su PID mediante ps aux.
  2. Finaliza el programa utilizando kill PID.
  3. Comprueba que el proceso ha desaparecido ejecutando nuevamente ps aux.
  4. Consulta la lista completa de señales con kill -l.
  5. Pausa un proceso utilizando kill -STOP y vuelve a activarlo con kill -CONT.
  6. Investiga la diferencia entre SIGTERM y SIGKILL.

Consejo: Siempre que sea posible utiliza primero kill (SIGTERM). Recurre a kill -9 únicamente cuando el proceso no responda, ya que este último no permite que el programa cierre correctamente ni guarde su información.