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.




