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 -9como primera opción. - Confundir el PID del proceso.
- Finalizar procesos críticos del sistema.
- Pensar que
killsolo 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
- Abre un programa (por ejemplo, un editor de texto) y localiza su PID mediante
ps aux. - Finaliza el programa utilizando
kill PID. - Comprueba que el proceso ha desaparecido ejecutando nuevamente
ps aux. - Consulta la lista completa de señales con
kill -l. - Pausa un proceso utilizando
kill -STOPy vuelve a activarlo conkill -CONT. - Investiga la diferencia entre
SIGTERMySIGKILL.
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.