Linux / Comando pkill: enviar señales a procesos seleccionados por nombre
pkill envía una señal a los procesos que coinciden con un nombre o condición. Por defecto, envía SIGTERM, que solicita la finalización, pero si el nombre coincide de manera amplia, también puede aplicarse a varios procesos no deseados.
Utiliza criterios de selección como los de pgrep, pero envía señales en lugar de listar coincidencias. Ejecute primero pgrep -a con las mismas condiciones para comprobar PID y línea de órdenes; verifique el propietario con ps o limite el usuario con -u. Esta comprobación reduce errores, aunque el conjunto de procesos puede cambiar antes de enviar la señal.
Sintaxis básica
pkill [opciones] patrón
La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man pkill en el sistema actual.
Ejemplos de uso
Verificar primero el objetivo
Use únicamente un proceso de prueba propio cuyo nombre haya comprobado. myworker y demo-worker son nombres de ejemplo, y alice debe sustituirse por el usuario efectivo correspondiente. -x exige que el patrón abarque el nombre completo; no confunda el nombre del proceso con todos sus argumentos.
pgrep -a -x myworker
Solicitud de finalización predeterminada
Envía SIGTERM a los procesos que coinciden con el nombre revisado.
pkill -x myworker
Restricción de alcance por usuario
Si el proceso con el mismo nombre se ejecuta en varias cuentas, especifique también al usuario.
pkill -u alice -x myworker
Verificar el resultado del comando de finalización
pkill envía una señal a los procesos que coinciden con el patrón de nombre. Incluso si tiene éxito, por lo general no muestra una lista de PID, por lo que primero ejecute pgrep con las mismas condiciones para verificar el objetivo.
pgrep -a -x demo-worker
pkill -TERM -x demo-worker
pgrep -a -x demo-worker
En la primera consulta, pueden aparecer procesos de prueba, y el envío de la señal en sí no produce salida; la consulta final estará vacía si la finalización ha terminado. El hecho de enviar la señal no garantiza la finalización inmediata, así que verifique nuevamente después de un momento.
-x se limita a coincidir con el nombre completo. Cuando se busca con -f en toda la línea de comandos, el patrón puede coincidir más ampliamente, así que tenga especial cuidado. Los ejemplos se aplican solo a los procesos de prueba que haya creado usted mismo y para los servicios reales siga los procedimientos operativos.
Opciones y formatos principales
| Opción o formato | Descripción |
|---|---|
-x |
Seleccione los procesos que coincidan con el nombre completo. |
-u usuario |
Limita la selección al ID o nombre de usuario efectivo indicado. |
-f |
Inspeccione toda la línea de comandos. |
-TERM |
Enviar explícitamente SIGTERM. |
-e |
Muestra la información del destinatario al que se envió la señal en las implementaciones compatibles. |
Precauciones al usar
pkill -f puede seleccionar varias tareas si solo coincide en parte con la línea de comandos. Cuando gestione servicios, priorice, siempre que sea posible, el procedimiento normal de cierre de la herramienta de administración de servicios. SIGKILL hace que se omitan las tareas de limpieza, por lo que normalmente no se usa como primera opción.
Preguntas frecuentes
¿Cuál es la diferencia entre pkill y pgrep?
pgrep busca PIDs que cumplan las condiciones, mientras que pkill envía señales reales a los procesos que cumplen las condiciones.
Documentación oficial
Se puede consultar el comportamiento exacto de las opciones y las diferencias entre implementaciones en la documentación oficial sobre pkill.




