Comandos LinuxExplicados en español
/
Ficha47 / 104
Categoría
Procesos
Ejemplos
5
Ver también
ps · top

kill

kill (matar)

Envía una señal a un proceso para terminarlo o controlarlo.

Sirve para terminar un proceso por su PID: desde pedirle que cierre ordenadamente hasta forzarlo cuando ya no responde. Lo usas cuando un programa se cuelga, un script corre para siempre o te sobra un proceso que consume recursos.

Sintaxiskill [opciones] PID...
Precaución

kill -9 mata el proceso de golpe, sin dejarlo guardar ni limpiar: puedes perder datos o dejar archivos a medio escribir, sobre todo en bases de datos. Además, con sudo puedes matar procesos del sistema; revisa bien el PID antes de mandarlo.

§ 1

Despiece

5 ejemplos
Terminar un proceso de forma normal

Terminar un proceso de forma normal

2 piezas
Lámina01 / 05
Comandokill 1234
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1killComandoEl comando que envía señales a los procesos.
21234ArgumentoEl PID del proceso que quieres terminar.
Resultado

Envía la señal TERM, que le pide al proceso que termine. Los programas bien hechos cierran sus archivos antes de salir; algunos pueden ignorarla.

Forzar el cierre de un proceso

3 piezas
Lámina02 / 05
Comandokill -9 1234
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1killComandoEl comando que envía señales a los procesos.
2-9OpciónLa señal KILL: mata el proceso sin darle oportunidad de cerrar nada.
31234ArgumentoEl PID del proceso que quieres terminar.
Resultado

El proceso termina de inmediato, aunque estuviera colgado. La excepción son los procesos atorados esperando al disco (estado D) y los zombis, que ya están muertos.

Ver la lista de señales disponibles

2 piezas
Lámina03 / 05
Comandokill -l
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1killComandoEl comando que envía señales a los procesos.
2-lOpciónMuestra el nombre y número de cada señal.
Resultado

Imprime todas las señales como TERM, INT, STOP y KILL con su número.

Pausar un proceso sin terminarlo

3 piezas
Lámina04 / 05
Comandokill -STOP 1234
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1killComandoEl comando que envía señales a los procesos.
2-STOPOpciónLa señal que congela el proceso sin cerrarlo.
31234ArgumentoEl PID del proceso que quieres pausar.
Resultado

El proceso se congela y deja de usar CPU, pero sigue en memoria. Sus procesos hijos siguen corriendo, porque la señal solo va al PID que indicaste.

Reanudar un proceso pausado

3 piezas
Lámina05 / 05
Comandokill -CONT 1234
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1killComandoEl comando que envía señales a los procesos.
2-CONTOpciónLa señal que reanuda un proceso pausado con -STOP.
31234ArgumentoEl PID del proceso que quieres reanudar.
Resultado

El proceso vuelve a correr desde donde lo pausaste.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-lMuestra la lista de señales que entiende el sistema.
-TERMLa señal por defecto, también escrita como -15. Pide al proceso que cierre de forma ordenada.
-9La señal KILL. Mata el proceso al instante, sin darle tiempo de guardar nada.
-INTLa señal INT, la misma que dispara Ctrl+C en la terminal.
-STOPPausa el proceso sin terminarlo; se reanuda después con -CONT.
-CONTReanuda un proceso que fue pausado con -STOP.
§ 3

Fallas comunes

FallaRemedio
Usar kill -9 como primera opción.Con -9 se pierde lo que el proceso no haya guardado. Empieza con kill PID, espera unos segundos y usa -9 solo si sigue sin responder.
Terminar el PID equivocado.Verifica antes con ps aux | grep nombre. Confirma que el PID corresponde al proceso correcto y a nadie más.
Recibir el mensaje Operation not permitted.Solo puedes enviar señales a tus propios procesos. Si el proceso es de otro usuario o de root, necesitas sudo.
Ver que un proceso no se termina aunque le mandes kill.Un proceso puede tardar en cerrar o ignorar TERM. Dale unos segundos, prueba kill -INT y, si sigue sin cerrar, hasta entonces usa kill -9.
§ 4

Preguntas frecuentes

¿Qué hace kill -9?
Envía la señal SIGKILL, que mata el proceso de inmediato. El proceso no puede cerrar archivos ni guardar nada, por eso se reserva para cuando un proceso no responde a la señal normal.
¿Cómo mato un proceso en Linux?
Primero encuentra su PID: ps aux | grep nombre o pgrep nombre. Luego ejecuta kill PID para que cierre de forma ordenada, y kill -9 PID si no responde. Si prefieres hacerlo por nombre, usa pkill nombre.
¿Cuál es la diferencia entre kill y kill -9?
kill manda la señal TERM, que le pide al proceso que termine y le da oportunidad de cerrar en orden. kill -9 manda KILL: el sistema lo elimina de golpe y el proceso no puede ni ignorarla ni guardar nada.
¿Qué significa el mensaje No such process?
Que no hay ningún proceso con ese PID: ya terminó o escribiste mal el número. Ejecuta ps aux de nuevo para ver los PID actuales.
¿Cómo pauso un proceso sin cerrarlo?
Con la señal STOP: kill -STOP PID. El proceso queda congelado sin gastar CPU, y lo reanudas con kill -CONT PID.
§ 5

Ver también