Cómo detener un proceso con el comando Pkill en Linux

1 mar 2021 2 min di lettura
Cómo detener un proceso con el comando Pkill en Linux
Indice dei contenuti

Introducción

pkill es una utilidad de línea de comandos que envía señales a los procesos de un programa en ejecución según ciertos criterios. Los procesos se pueden especificar con sus nombres completos o parciales, un usuario que ejecuta el proceso u otros atributos.

El pkill es parte del procps (o procps-ng ), que está preinstalado en casi todas las distribuciones de Linux. pkill es un contenedor para el pgrep que solo imprime una lista de procesos coincidentes.

pkill permite cerrar un proceso enviando señales a través del terminal.

Este artículo cubre los conceptos básicos del pkill en Linux.

Cómo usar el comando pkill

La sintaxis del pkill es la siguiente:

pkill [OPTIONS] <PATTERN>

La <PATTERN> se especifica mediante expresiones regulares extendidas.

Si se invoca sin ninguna opción, pkill envía la señal 15 ( TERM ) a los PID de todos los programas en ejecución que coinciden con el nombre especificado. Por ejemplo, para detener todos los procesos de Firefox, ejecutaría:

pkill -9 firefox

El comando devuelve 0 cuando al menos un proceso en ejecución coincide con el nombre solicitado. De lo contrario, el código de salida es 1. Esto puede resultar útil cuando se utiliza en scripts de shell.

Para enviar una señal diferente a los procesos correspondientes, invoque el pkill con la --signal, seguido del nombre de la señal numérica o simbólica. Otra forma de enviar una señal es ejecutar pkill seguido del nombre o número de la señal precedido por un guión ( - ).

Utilice el kill -l para enumerar todas las señales disponibles.

Las señales más utilizadas son:

  • 1 ( HUP ): para recargar un proceso.
  • 9 ( KILL ): para finalizar un proceso.
  • 15 ( TERM ): para detener un proceso.

Las señales se pueden especificar de tres formas diferentes:

  • usando un número (por ejemplo, -1)
  • con el prefijo "SIG" (por ejemplo, -SIGHUP)
  • sin el prefijo "SIG" (por ejemplo, -HUP).

Por ejemplo, para recargar procesos de Nginx, debe ejecutar:

pkill -HUP nginx

pkill usa expresiones regulares para hacer coincidir los nombres de los procesos. Siempre es una buena idea utilizar el pgrep para imprimir los trabajos correspondientes antes de enviarles señales. Por ejemplo, para enumerar todos los procesos que contienen "ssh" en sus nombres:

1039 sshd
 2257 ssh-agent
 6850 ssh
 31279 ssh-agent

Si desea enviar una señal solo a procesos cuyos nombres son exactamente como el patrón de búsqueda, use:

pkill '^ssh$'

El carácter ( ^ ) coincide con el principio de la cadena y el dólar $ al final.

De forma predeterminada, pkill solo coincide con el nombre del proceso. -f se usa la opción -f, el comando coincide con listas de argumentos completas. Si el comando contiene espacios, cite todo el comando:

pkill -9 -f "ping 8.8.8.8"

Use la -u para decirle al pkill que coincida con los procesos ejecutados por un usuario en particular:

pkill -u alice

Para especificar varios usuarios, separe sus nombres con comas:

pkill -u alice,nicole

También puede combinar opciones y patrones de búsqueda. Por ejemplo, para enviar la KILL a todos los procesos que se ejecutan bajo el usuario "alice" y que contienen "gnome" en sus nombres, escriba:

pkill -9 -u alice gnome

Para ver solo los procesos iniciados más antiguos o más recientes, use la -n (para el más reciente) o -o (para el más antiguo).

Por ejemplo, para eliminar la pantalla más reciente, escriba este comando:

pkill -9 -n screen

Conclusión

El pkill se utiliza para enviar señales a programas en ejecución según diferentes criterios.

Para obtener más información sobre el pkill, visite la página del manual de pkill o escriba en la terminal:

man pkill

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.