Inicio > Gestión de procesos > kill

Guía del comando kill: Terminación de procesos

`kill` es un comando utilizado en sistemas Linux para enviar señales a procesos en ejecución y controlar dichos procesos. Se utiliza principalmente para terminar (matar) procesos, pero también se pueden enviar otros tipos de señales para modificar el comportamiento de los procesos. A través de esta guía, aprenderás cómo usar el comando `kill` y cómo aprovechar diversas señales.

Descripción general de kill

`kill` envía señales a procesos que tienen un ID de proceso (PID) específico. La señal más común es la que indica al proceso que debe finalizar, pero según el tipo de señal, el proceso puede reaccionar de diferentes maneras. Por ejemplo, puede ser solicitado a suspenderse o a recargar su archivo de configuración.

Importancia del ID de Proceso (PID)

`kill` recibe el PID como argumento. Por lo tanto, es importante conocer el PID exacto del proceso que deseas controlar. Puedes usar el comando `ps` o `top` para verificar el PID de un proceso.

Roles principales de kill

  • Terminación de procesos: Finaliza de manera forzada o normal procesos que ya no son necesarios o que están fallando.
  • Reinicio/recarga de procesos: Envía señales específicas para que el proceso lea nuevamente su archivo de configuración o se reinicie.
  • Gestión de recursos del sistema: Finaliza procesos que consumen recursos innecesarios, asegurando la estabilidad del sistema.

Señales más comúnmente utilizadas

Existen diversas señales, pero las dos más utilizadas son:

Señales principales

  • **SIGTERM (15, valor predeterminado)**: Envía una solicitud suave al proceso para 'terminar'. Cuando recibe esta señal, el proceso puede realizar tareas de limpieza y finalizar. En la mayoría de los casos, se intenta primero esta señal.
  • **SIGKILL (9)**: Finaliza el proceso de inmediato. El proceso no puede ignorar o capturar esta señal y se termina forzosamente sin oportunidad de limpieza. Debe ser utilizado como último recurso.

Opciones principales del comando kill

`kill` utiliza números o nombres de señales para controlar los procesos. Al enviar una señal a un proceso específico, debes especificar con precisión el PID de ese proceso.

1. Uso básico

2. Señales útiles

3. Ver lista de todas las señales

Comando generado:

Combina los comandos.

Descripción:

`kill` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Comando killall (terminar procesos por nombre)

`killall` envía señales a todos los procesos que coinciden con un nombre en lugar de un PID, a diferencia de `kill`. Esto es muy conveniente para terminar todas las instancias de una aplicación específica.

Terminación normal de procesos por nombre

killall nginx

Envía la señal SIGTERM a todos los procesos llamados `nginx` para solicitar una terminación normal.

Terminación forzada de procesos por nombre

killall -9 firefox

Envía la señal SIGKILL a todos los procesos llamados `firefox` para forzarlos a terminar de inmediato.

Terminar solo procesos de un usuario específico

killall -u $(whoami) chrome

Termina solo los procesos `chrome` del usuario actual. No afecta los procesos `chrome` de otros usuarios.

Comando pkill (terminar procesos por patrón)

`pkill` es similar a `killall`, pero utiliza expresiones regulares para encontrar procesos, lo que lo hace más flexible. Es útil para encontrar procesos por nombres parciales o para terminar varios procesos relacionados a la vez.

Terminación normal de procesos por patrón

pkill http

Envía la señal SIGTERM a todos los procesos que contienen 'http' en su nombre para terminarlos. (Ej: `httpd`, `apache2`, etc.)

Terminación forzada de procesos por patrón

pkill -9 mysql

Envía la señal SIGKILL a todos los procesos que contienen 'mysql' en su nombre para forzarlos a terminar.

Terminar procesos pertenecientes a un usuario específico

pkill -u www-data php-fpm

Termina todos los procesos 'php-fpm' pertenecientes al usuario `www-data`.

Ejemplos de uso

Aprende a gestionar eficazmente los procesos del sistema a través de diversos ejemplos de uso de los comandos `kill`, `killall` y `pkill`.

Terminar proceso con ID específico (PID)

kill 12345

Intenta terminar normalmente el proceso con el PID `12345` enviando la señal SIGTERM.

Terminación forzada de proceso (uso de PID)

kill -9 54321

Si el proceso con el PID `54321` no responde, se termina forzosamente con la señal `SIGKILL`.

Recargar proceso Nginx (uso de SIGHUP)

sudo kill -1 $(cat /run/nginx.pid)

Encuentra el proceso maestro de Nginx (PID) y envía la señal `SIGHUP` para que lea nuevamente su archivo de configuración. (El PID del proceso de Nginx se puede verificar con `ps aux | grep nginx`)

Terminar todos los navegadores Chrome por nombre

killall chrome

Termina todos los procesos de Chrome en ejecución de forma normal. (Las ventanas se cerrarán y el contenido no guardado se perderá)

Terminar todos los procesos de usuario 'johndoe'

sudo killall -9 -u johndoe

Fuerza la terminación de todos los procesos en ejecución del usuario `johndoe`. (Se requieren privilegios de administrador)

Terminar procesos que consumen mucha CPU (ejemplo)

# 1. Identificar PID con top o htop (ej: 12345)
# 2. Terminar el PID correspondiente
kill 12345

Un escenario común es identificar el PID de los procesos que consumen mucha CPU utilizando `top` o `htop` y luego terminarlos.


Comandos de la misma categoría