Tutorial del comando pkill de Linux para principiantes (5 ejemplos)

En Linux, si necesitas matar un proceso (por la razón que sea) a través de la línea de comandos, puedes utilizar el comando kill, que requiere que pases como entrada el ID del proceso que intentas terminar. ¿Pero sabías que también existe una forma de matar procesos sin especificar sus PID?

Sí, existe una herramienta -apodada pkill- que te permite hacerlo. En este artículo, hablaremos de los fundamentos de este comando utilizando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina Ubuntu 18.04 LTS y Debian 10.

Comando pkill de Linux

El comando pkill en Linux es básicamente una forma más sencilla de matar procesos. A continuación se muestra su sintaxis:

pkill [options] pattern

Y esto es lo que dice la página man sobre esta herramienta:

pkill - signal processes based on name and other attributes

A continuación hay algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una mejor idea de cómo funciona el comando pkill.

Q1. ¿Cómo se utiliza el comando pkill?

El uso básico es bastante sencillo: todo lo que tienes que hacer es ejecutar «pkill» con el nombre del proceso como entrada.

Por ejemplo, si quieres matar el proceso ‘gedit’, puedes hacerlo usando pkill de la siguiente manera:

pkill gedit

Eso es. Verás que el proceso «gedit» (si se está ejecutando) será eliminado al ejecutar el comando mencionado.

Q2. ¿Cómo hacer que pkill envíe una señal diferente?

Como ya hemos mencionado al principio de este artículo, el comando pkill básicamente envía una señal al proceso. Por defecto, es la señal SIGTERM la que se envía, pero si quieres, puedes cambiar la señal utilizando la opción de línea de comandos –signal.

Por ejemplo:

pkill --signal SIGKILL gedit

Q3. ¿Cómo matar procesos basándose en la línea de comandos completa?

Por defecto, el nombre de entrada (patrón) se compara con el nombre del proceso. Sin embargo, si quieres, puedes hacer que pkill coincida con la línea de comandos completa. Esto puede hacerse utilizando la opción de línea de comandos -f.

Por ejemplo, digamos que hay dos comandos ping ejecutándose en mi sistema. A continuación se muestra un extracto de la salida del comando ps:

...
root 19253 0.0 0.1 9180 2916 pts/1 S+ 19:24 0:00 ping google.com
root 19331 0.0 0.1 9180 2912 pts/2 S+ 19:25 0:00 ping howtoforge.com
...

Ahora, supongamos que el requisito es matar sólo el comando ‘ping google.com’ utilizando pkill.

Si utilizas pkill de la siguiente manera

pkill ping

entonces se matarán los dos comandos. Así que para evitarlo, podemos utilizar la opción de línea de comandos -f. Así es como se puede utilizar:

pkill -f "ping google.com"

He ejecutado el comando en la primera ventana de terminal:

Proceso eliminado con pkill

Resultado en la segunda ventana de terminal donde se estaba ejecutando el proceso de ping:

Proceso en el segundo terminal detenido con el comando pkill

Así que cuando se ejecutó el comando mencionado, sólo se mató el comando mencionado como entrada.

Q4. ¿Cómo hacer que pkill no distinga entre mayúsculas y minúsculas?

Por defecto, el comando pkill distingue entre mayúsculas y minúsculas, lo que significa que trata los nombres en mayúsculas y minúsculas de forma diferente. Sin embargo, si quieres, puedes forzar que pkill no distinga entre mayúsculas y minúsculas, algo que puedes hacer utilizando la opción de línea de comandos -i.

pkill -i [process-name]

Q5. ¿Cómo hacer que syslog relea su archivo de configuración utilizando pkill?

Puedes utilizar el comando pkill de la siguiente manera para conseguirlo:

pkill -HUP syslogd

Conclusión

Así pues, pkill es un comando extremadamente útil cuando se trata de matar procesos. Ya hemos hablado de algunas de las opciones de línea de comandos que ofrece este comando. Una vez que hayas terminado de practicarlas, puedes aprender más sobre el comando dirigiéndote a su página man.

También te podría gustar...