Inicio > Gestión de procesos > killall

killall: Terminar procesos por nombre

El comando killall envía una señal a todos los procesos en ejecución con un nombre específico. Esto es útil para terminar todas las instancias de una aplicación o servicio en particular a la vez. Por defecto, envía la señal SIGTERM, pero también puedes especificar otras señales.

Visión general

killall es una herramienta potente que permite terminar múltiples procesos a la vez utilizando su nombre en lugar de su ID de proceso (PID). Dado que se dirige a todas las instancias con el mismo nombre, es particularmente útil para terminar todas las ventanas o servicios en segundo plano de una aplicación específica.

Características principales

  • Terminación basada en el nombre del proceso
  • Soporte para el envío de diversas señales (SIGTERM por defecto)
  • Capacidad de filtrar por usuario, tiempo, etc.
  • Manejo de múltiples instancias a la vez

Opciones principales

El comando killall ofrece varias opciones para controlar finamente la forma y el destino de la terminación del proceso.

Comportamiento y señales por defecto

Filtrado de procesos

Comando generado:

Combina los comandos.

Descripción:

`killall` Ejecutando el comando.

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

Ejemplos de uso

Varios ejemplos de cómo utilizar el comando killall.

Terminar todos los procesos con un nombre específico

killall firefox

Termina todas las instancias del navegador web Firefox. Envía la señal predeterminada SIGTERM (solicitud de terminación normal).

Terminar forzosamente con una señal específica

killall -s SIGKILL chrome

Termina todas las instancias del navegador web Chrome con la señal SIGKILL (terminación forzada). Esta señal no da tiempo a los procesos para realizar tareas de limpieza, por lo que debe usarse con precaución.

Terminar en modo interactivo

killall -i sshd

Solicita confirmación al usuario para cada instancia del proceso sshd (demonio SSH) antes de terminarlo. Si se ingresa 'y', se terminará.

Terminar procesos de un usuario específico

killall -u user1

Termina todos los procesos ejecutados por el usuario 'user1'.

Esperar a que los procesos terminen

killall -w myapp

El comando esperará hasta que el proceso 'myapp' en ejecución termine por completo.

Instalación

El comando killall está instalado por defecto como parte del paquete 'psmisc' en la mayoría de las distribuciones de Linux. Si no está instalado en tu sistema, puedes instalarlo usando los siguientes comandos.

Debian/Ubuntu

sudo apt update && sudo apt install psmisc

Instala el paquete psmisc usando el gestor de paquetes APT.

CentOS/RHEL/Fedora

sudo yum install psmisc
# o
sudo dnf install psmisc

Instala el paquete psmisc usando el gestor de paquetes YUM o DNF.

Consejos y precauciones

Consejos útiles y precauciones a tener en cuenta al usar el comando killall.

Precaución al usar SIGKILL (-9)

SIGKILL (número de señal 9) termina un proceso de forma forzada e inmediata, sin darle la oportunidad de limpiar archivos o datos abiertos. Esto puede provocar pérdida de datos o inestabilidad del sistema, por lo que debe usarse como último recurso después de intentar con otras señales (como SIGTERM).

  • **Usar SIGTERM (por defecto) primero**: La mayoría de las aplicaciones se cierran limpiamente al recibir SIGTERM.
  • **Usar SIGKILL como último recurso**: Úsalo solo cuando el proceso no responda.

Verificar el nombre exacto del proceso

killall utiliza el nombre exacto del proceso. Es recomendable verificar el nombre exacto del proceso que deseas terminar usando el comando `ps aux | grep <nombre_del_proceso>`.

  • Ejemplo: `ps aux | grep firefox`

Diferencia entre killall y pkill

`killall` opera basándose en el nombre exacto del proceso, mientras que `pkill` puede usar expresiones regulares para hacer coincidir nombres de procesos, permitiendo una búsqueda y terminación más flexible.

  • `killall`: Coincidencia de nombre exacto (ej. `killall firefox`)
  • `pkill`: Coincidencia de expresiones regulares (ej. `pkill -f 'firef[o]x'`)
  • `pkill` extiende la funcionalidad del comando `kill` sin necesidad de especificar PIDs directamente.

Precaución al terminar procesos del sistema

Terminar procesos esenciales del sistema con `killall` puede causar inestabilidad o fallos en el sistema. Ten especial cuidado al ejecutarlo con permisos de `root`.

  • Ejemplo: Nunca ejecutes `killall systemd`, `killall init`, etc.

Comandos de la misma categoría