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

La línea de comandos de Linux ofrece muchas utilidades que trabajan con procesos. Una de estas herramientas es pidof, que -como su nombre indica- te da el ID de proceso de un proceso ya en ejecución. En este tutorial, hablaremos de los fundamentos de pidof utilizando algunos ejemplos fáciles de entender.

Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí han sido probados en una máquina Ubuntu 16.04 LTS.

El comando pidof de Linux

Como ya se ha mencionado anteriormente, el comando pidof te permite encontrar el ID del proceso de un programa en ejecución. A continuación se muestra su sintaxis:

pidof [options] command

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

       Pidof finds the process id's (pids) of the named  programs.  It  prints
       those id's on the standard output. This program is on some systems used
       in run-level change scripts, especially when the system has a  System-V
       like   rc  structure.  In  that  case  these  scripts  are  located  in
       /etc/rc?.d, where ? is the runlevel. If the system  has  a  start-stop-
       daemon (8) program that should be used instead.

A continuación se presentan algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una buena idea de cómo funciona la herramienta.

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

El uso básico es bastante sencillo: basta con pasar el nombre del programa como entrada al comando. Por ejemplo:

pidof gedit

Cómo utilizar el comando pidof

Así podrás ver que el comando produjo el ID del proceso de gedit en la salida.

Q2. ¿Cómo hacer que pidof devuelva sólo un pid?

A veces, verás que el comando pidof devuelve varios pids. Por ejemplo, intenta ejecutar el comando pidof con un programa de navegación web como entrada.

pidof firefox

A continuación se muestra la salida producida en mi sistema:

ejemplo de comando pidof

Sin embargo, en caso de que quieras, puedes forzar a la herramienta a que sólo produzca un único PID en la salida. Esto puede hacerse utilizando la opción de línea de comandos -s.

pidof -s firefox

comando pidf único pid

Q3. ¿Cómo limitar la salida en función del directorio raíz?

Si quieres que pidof sólo devuelva los ID de los procesos que se ejecutan con el mismo directorio raíz, utiliza la opción de línea de comandos -c.

pidof -c program_name

Ten en cuenta que esta opción se ignora para los usuarios no root, ya que no podrán comprobar el directorio raíz actual de los procesos
que no poseen.

Q4. ¿Cómo utilizar pidof en el caso de binarios guardados en sistemas de archivos de red?

Cuando se trata de binarios ubicados en sistemas de archivos en red como NFS, puedes utilizar la opción de línea de comandos -n para que el comando pidof evite utilizar la llamada a la función del sistema stat.

pidof -n program_name

Ten en cuenta que la página del manual sugiere que «en lugar de utilizar esta opción se puede establecer y exportar la variable PIDOF_NETFS».

Q5. ¿Cómo funciona pidof internamente?

La documentación oficial dice que pidof es en realidad el mismo programa que killall. El programa se comporta según el nombre con el que se le llama. Esto es lo que dice exactamente la página man:

       When pidof is invoked with a full pathname to the program it should
       find the pid of, it is reasonably safe. Otherwise it is  possible  that
       it  returns  pids of running programs that happen to have the same name
       as the program you're after but are actually other programs. Note  that
       that  the executable name of running processes is calculated with read?
       link(2), so symbolic links to executables will also match.

Conclusión

El comando pidof puede ser útil en muchas situaciones. Por ejemplo, si quieres matar un proceso cuyo PID no conoces, puedes utilizar rápidamente esta herramienta para encontrar el id del proceso y el proceso puede ser matado en poco tiempo. El comando pidof no ofrece muchas opciones, y ya hemos hablado de la mayoría de ellas aquí. Para más información, dirígete a la página man de la herramienta.

También te podría gustar...