Linux / Comando killall: enviar señales a procesos con el mismo nombre

killall de Linux envía señales a los procesos que coinciden con el nombre especificado. El valor predeterminado es SIGTERM, y si hay varias tareas con el mismo nombre, todas pueden ser destino.

Se explica basado en la implementación común de psmisc en Linux. En otras variantes de Unix, el significado de killall puede ser diferente, por lo que al trasladar el sistema, asegúrese de consultar el manual actual. La selección del objetivo se revisa primero con pgrep.

Sintaxis básica

killall [opciones] nombre ...

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

Ejemplos de uso

Verificación de procesos con el mismo nombre

Se observan primero el PID y la línea de comando del nombre deseado.

pgrep -a -x myworker

Solicitud de terminación normal

En la implementación de psmisc en Linux, se envía SIGTERM a las tareas cuyo nombre coincide.

killall -TERM myworker

Restricción por nombre y usuario del objetivo

Se utiliza cuando es necesario reducir el rango de usuarios.

killall -u alice myworker

Cuando hay varios procesos con el mismo nombre

killall puede enviar señales a todos los procesos que coincidan con el nombre especificado. Primero debe verificar los candidatos con pgrep para no terminar instancias inesperadas.

pgrep -a -x demo-worker
killall -TERM demo-worker

El primer comando muestra el PID objetivo y la línea de comandos, mientras que el segundo comando normalmente no muestra salida incluso si tiene éxito. Luego, verifique los procesos restantes con pgrep -a -x demo-worker. Si hay varias tareas con el mismo nombre, todas pueden verse afectadas.

Cambie el nombre de ejemplo por un proceso de prueba que haya creado usted mismo. Algunos killall en ciertas variantes de UNIX funcionan de forma distinta a la implementación de Linux, por lo que no suponga portabilidad. Si se trata de un servicio administrado, systemctl stop nombre.service puede ser más adecuado que finalizar el proceso directamente.

Opciones y formatos principales

Opción o formato Descripción
-s señal Especifica la señal que se enviará.
-u usuario Selecciona solo los procesos del usuario especificado.
-i Solicita confirmación para cada objetivo.
-v Muestra detalles de la ejecución.
-w Espera hasta que los procesos coincidentes se terminen.

Precauciones al usar

En un servidor compartido, un nombre puede seleccionar varias instancias. La selección puede cambiar entre la consulta y el envío de la señal. Los nombres largos también tienen particularidades en psmisc: consulte man killall y la opción -e si no se dispone del nombre completo. -w puede esperar indefinidamente si el proceso no desaparece. No traslade estas órdenes a otro Unix sin comprobar su implementación.

Preguntas frecuentes

¿killall termina todos los procesos del sistema?

En la implementación psmisc de Linux, se dirige a los procesos que coinciden con el nombre especificado. Sin embargo, en otras implementaciones de Unix puede tener un significado diferente.

Documentación oficial

El comportamiento exacto de las opciones y las diferencias según la implementación se pueden consultar en la documentación oficial relacionada con killall.