Linux / Comando kill: enviar señales a un proceso por su PID

kill envía una señal al ID de proceso (PID) especificado o a un trabajo de shell. A diferencia de lo que sugiere el nombre, la acción predeterminada no es forzar la terminación, sino una solicitud de finalización a través de SIGTERM.

En Bash, kill se proporciona como un comando interno del shell. Cómo reaccionará el proceso que recibe la señal depende del tipo de señal y de la implementación del programa. Si es necesario finalizar, primero intente el procedimiento de terminación normal y SIGTERM.

Sintaxis básica

kill [-señal] PID ...

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de help kill en el sistema actual.

Ejemplos de uso

Verificación de PID

Sustituya 1234 o 12345 por el PID positivo de un proceso de prueba propio y compruebe que sigue siendo la tarea prevista. Los ejemplos que envían señales cambian el proceso real; ejecute cada consulta y orden de forma consciente, observando el resultado entre pasos.

ps -p 1234 -o pid,user,stat,cmd

Solicitud de terminación normal

Envíe explícitamente SIGTERM predeterminado.

kill -TERM 1234

Lista de señales disponibles

Verifique los nombres de las señales de la implementación actual del shell.

kill -l

Verificar PID y enviar señal

kill envía señales al PID, no al nombre. El siguiente 12345 es un número solo para descripción, así que al ejecutarlo realmente, primero cámbielo por el PID de su propio proceso de prueba verificado con ps.

ps -p 12345 -o pid,stat,comm
kill -TERM 12345
ps -p 12345 -o pid,stat,comm

En la primera consulta se muestra el objetivo, y si kill tiene éxito, normalmente no hay salida. Al terminar la finalización normal, la última consulta mostrará solo el encabezado o el resultado de que no hay objetivo. Este es un flujo de ejemplo y el tiempo real hasta la finalización varía según el proceso.

SIGTERM solicita la terminación y permite que el programa ejecute su rutina de cierre si tiene una. SIGKILL no puede capturarse ni ignorarse y no permite esa limpieza; un proceso en espera ininterrumpible puede seguir visible hasta que finalice esa espera. Los PID se reutilizan: compruebe el objetivo justo antes de actuar y no se base en un número antiguo.

Opciones y formatos principales

Opción o formato Descripción
-TERM Solicitar al proceso que se termine normalmente.
-INT Enviar la señal correspondiente a una interrupción del terminal.
-HUP Enviar la señal hangup, que se interpreta de forma diferente según el programa.
-KILL Envía SIGKILL, que el proceso no puede capturar ni ignorar y no permite limpieza propia; la desaparición no siempre es inmediata.
-0 Se verifica la existencia y los permisos sin una señal de terminación real.

Precauciones al usar

No use PID registrado hace mucho tiempo, ya que los PID pueden reutilizarse. La falla de kill -0 podría deberse no solo a la ausencia del proceso, sino también a permisos insuficientes. kill -KILL es el último recurso y puede interrumpir la limpieza de datos o la escritura de archivos.

Preguntas frecuentes

¿Qué hacer si el proceso permanece después de ejecutar kill?

Puede estar ignorando SIGTERM o en el proceso de cierre. Verifique el estado y los registros, y primero revise los métodos normales de finalización del servicio.

Documentación oficial

Puede consultar la documentación oficial de kill para conocer el funcionamiento exacto de las opciones y las diferencias entre implementaciones.