Este artículo cubre los conceptos básicos del pkillcomando de Linux.

pkilles una utilidad de línea de comandos que envía señales a los procesos de un programa en ejecución en función de criterios determinados. Los procesos se pueden especificar por sus nombres completos o parciales, un usuario que ejecuta el proceso u otros atributos.

El pkillcomando es parte del paquete procps(o procps-ng), que está preinstalado en casi todas las distribuciones de Linux. pkilles básicamente una envoltura alrededor del pgrepprograma que solo imprime una lista de procesos coincidentes.

Cómo usar el pkillcomando

La sintaxis del pkillcomando es la siguiente:

pkill [OPTIONS] <PATTERN>

La coincidencia <PATTERN>se especifica mediante expresiones regulares extendidas.

Cuando se invoca sin ninguna opción, pkillenvía la señal 15TERM) a los PID de todos los programas en ejecución que coincidan con el nombre dado. Por ejemplo, para detener correctamente todos los procesos de Firefox, ejecutaría:

pkill -15 firefox

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

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

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

Las señales más utilizadas son:

  • 1HUP): para recargar un proceso.
  • 9KILL): para matar un proceso.
  • 15TERM): para detener con gracia un proceso.

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

  • utilizando un número (p. ej., -1)
  • con el prefijo “SIG” (por ejemplo, -SIGHUP)
  • sin el prefijo “SIG” (p. ej., -HUP).

Por ejemplo, para recargar los procesos de Nginx, ejecutaría:

pkill -HUP nginx

pkillutiliza expresiones regulares para hacer coincidir los nombres de los procesos. Siempre es una buena idea usar el pgrepcomando para imprimir los procesos coincidentes 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 los procesos cuyos nombres son exactamente como el patrón de búsqueda, usaría:

pkill '^ssh$'
El carácter de intercalación ( ^) coincide al principio de la cadena y el dólar $al final.

De forma predeterminada, pkillcoincide solo con el nombre del proceso. Cuando -fse usa la opción, el comando coincide con listas completas de argumentos. Si el comando contiene espacios, cita el comando completo:

pkill -9 -f "ping 8.8.8.8"

Use la -uopción para indicarle pkillque coincida con los procesos que ejecuta un usuario determinado:

pkill -u mark

Para especificar varios usuarios, separe sus nombres con comas:

pkill -u mark,danny

También puede combinar opciones y patrones de búsqueda. Por ejemplo, para enviar KILLuna señal a todos los procesos que se ejecutan bajo la "marca" del usuario y contienen "gnomo" en sus nombres, escribiría:

pkill -9 -u mark gnome

Para mostrar solo los procesos iniciados menos recientemente (más antiguos) o más recientemente (más nuevos), use la opción -n(para los más nuevos) o (para los más antiguos).-o

Por ejemplo, para eliminar la pantalla creada más recientemente :

pkill -9 -n screen

Conclusión

El pkillcomando se utiliza para enviar señales a los programas en ejecución en función de diferentes criterios.

Para obtener más información sobre pkillel comando, visite la página de manual de pkill o escriba man pkillen su terminal.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.