Tutorial del comando pstree de Linux para principiantes (8 ejemplos)

Dado que todos los procesos (excepto el primero) de un sistema Linux tienen un padre, a veces resulta más fácil de entender si todos los procesos se muestran en una estructura de árbol. Te alegrará saber que existe una utilidad de línea de comandos -apodada pstree- que muestra un árbol de procesos.

En este tutorial, hablaremos de los fundamentos del comando pstree 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 16.04 LTS.

Comando pstree de Linux

Como ya hemos mencionado al principio, el comando pstree muestra un árbol de procesos. A continuación se muestra su sintaxis:

pstree [options]

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

       pstree shows running processes as a tree.  The tree is rooted at either
       pid  or  init  if  pid  is  omitted.   If a user name is specified, all
       process trees rooted at processes owned by that user are shown.

       pstree visually merges identical branches by  putting  them  in  square
       brackets and prefixing them with the repetition count, e.g.

           init-+-getty
                |-getty
                |-getty
                `-getty

       becomes

           init---4*[getty]

       Child  threads  of a process are found under the parent process and are
       shown with the process name in curly braces, e.g.

           icecast2---13*[{icecast2}]

       If pstree is called as pstree.x11 then it will prompt the user  at  the
       end of the line to press return and will not return until that has hap?
       pened.  This is useful for when pstree is run in a xterminal.

       Certain kernel or mount parameters, such  as  the  hidepid  option  for
       procfs,  will  hide information for some processes. In these situations
       pstree will attempt to build the tree without this information, showing
       process names as question marks.

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 el comando pstree:

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

El uso básico es sencillo: todo lo que tienes que hacer es ejecutar ‘pstree’ sin ninguna opción.

pstree

Cómo utilizar el comando pstree

Así puedes ver cómo pstree produce información relacionada con el proceso en la salida.

Q2. ¿Cómo hacer que pstree incluya también los argumentos de la línea de comandos en la salida?

Esto se puede hacer utilizando la opción de línea de comandos -a.

pstree -a

Cómo hacer que pstree incluya también los argumentos de la línea de comandos en la salida

Así puedes ver que el comando pstree ahora también muestra las opciones de la línea de comandos de algunos procesos.

Q3. ¿Cómo forzar a pstree a expandir subárboles idénticos en la salida?

Por defecto, el comando pstree fusiona las ramas idénticas poniéndolas entre corchetes y anteponiendo el recuento de repeticiones. Algo así:

Cómo forzar a pstree a expandir subárboles idénticos en la salida

Sin embargo, si quieres, puedes forzar a la herramienta a expandir árboles idénticos, algo que puedes hacer utilizando la opción de línea de comandos -c.

pstree -c

Subárboles ampliados

Q4. ¿Cómo hacer que pstree resalte un proceso concreto?

Si quieres que la herramienta resalte un proceso concreto en la salida, utiliza la opción de línea de comandos -H.

pstree -H [PID]

Donde PID es el ID del proceso que quieres resaltar. Por ejemplo, he resaltado el proceso firefox en mi sistema utilizando el siguiente comando:

pstree -H 3124

Cómo hacer que pstree resalte un proceso específico

Así puedes ver que el nombre «firefox» está ligeramente resaltado en comparación con otros nombres.

Q5. ¿Cómo hacer que pstree muestre los ID de los grupos de procesos en la salida?

Para ello, utiliza la opción de línea de comandos -g.

pstree -g

Cómo hacer que pstree muestre los ID de los grupos de procesos en la salida

Así podrás ver que los ID de los grupos de procesos se muestran como números decimales entre paréntesis después de cada nombre de proceso.

Q6. ¿Cómo hacer que pstree ordene los procesos en función de los PID?

Por defecto, pstree ordena los procesos con el mismo ancestro por su nombre. Sin embargo, si quieres, puedes hacer que pstree ordene los procesos también por PIDs, algo que puedes hacer utilizando la opción de línea de comandos -n.

pstree -n

Ten en cuenta que este tipo de ordenación también se conoce como ordenación numérica.

Q7. ¿Cómo hacer que pstree muestre el árbol de procesos específico de un usuario?

Si quieres que pstree muestre todos los árboles de procesos con raíz en los procesos que pertenecen a un usuario concreto, lo único que tienes que hacer es pasar el nombre de ese usuario como entrada al comando.

Por ejemplo,

pstree himanshu

En este caso, se produjo la siguiente salida en mi sistema:

Cómo hacer que pstree muestre el árbol de procesos específico de un usuario

Q8. ¿Cómo restringir Pstree a un proceso concreto?

Si quieres que pstree muestre sólo la información de los padres e hijos de un proceso concreto, utiliza la opción -s.

pstree -s [PID]

Por ejemplo, yo quería limitar la salida de Pstree sólo al proceso de Firefox en mi sistema, así que ejecuté el siguiente comando:

pstree -s 3124

Y esta es la salida que mostró la herramienta:

Cómo restringir Pstree a un proceso específico

Conclusión

Dependiendo del tipo de trabajo que realices, el comando pstree puede ser de gran ayuda. Aquí, en este tutorial, hemos hablado de algunas opciones clave de la línea de comandos que ofrece esta herramienta. Para más información, dirígete a su página man.

También te podría gustar...