Dado que cada proceso (excepto el primero) en un sistema Linux tiene un padre, a veces hace que las cosas sean más fáciles 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, denominada pstree - que muestra un árbol de procesos.
En este tutorial, discutiremos los conceptos básicos 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 con Ubuntu 16.04 LTS.
Comando Linux pstree
Como ya se mencionó al principio, el comando pstree muestra un árbol de procesos. La siguiente es su sintaxis:
pstree [options]
Y esto es lo que dice la página de manual de la herramienta al respecto:
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.
Los siguientes son algunos ejemplos con estilo de preguntas y respuestas que le darán una buena idea de cómo funciona el comando pstree:
P1. ¿Cómo usar el comando pstree?
El uso básico es simple:todo lo que tiene que hacer es ejecutar 'pstree' sin ninguna opción.
pstree
Entonces puede ver que así es como pstree produce información relacionada con el proceso en la salida.
P2. ¿Cómo hacer que pstree también incluya argumentos de línea de comando en la salida?
Esto se puede hacer usando la opción de línea de comando -a.
pstree -a
Entonces puede ver que el comando pstree ahora también muestra opciones de línea de comandos para algunos procesos.
P3. ¿Cómo forzar a pstree a expandir subárboles idénticos en la salida?
De forma predeterminada, el comando pstree fusiona ramas idénticas colocándolas entre corchetes y prefijándolas con el recuento de repeticiones. Algo como esto:
Sin embargo, si lo desea, puede obligar a la herramienta a expandir árboles idénticos, algo que puede hacer con la opción de línea de comando -c.
pstree -c
P4. ¿Cómo hacer que pstree resalte un proceso específico?
En caso de que desee que la herramienta resalte un proceso específico en la salida, use la opción de línea de comando -H.
pstree -H [PID]
Donde PID es el ID del proceso que desea resaltar. Por ejemplo, resalté el proceso de Firefox en mi sistema usando el siguiente comando:
pstree -H 3124
Para que pueda ver que el nombre 'firefox' está ligeramente resaltado en comparación con otros nombres.
P5. ¿Cómo hacer que pstree muestre ID de grupos de procesos en la salida?
Para ello, utilice la opción de línea de comando -g.
pstree -g
Entonces puede ver que los ID de grupos de procesos se muestran como números decimales entre paréntesis después de cada nombre de proceso.
P6. ¿Cómo hacer procesos de ordenación de pstree basados en PID?
Por defecto, pstree ordena los procesos con el mismo ancestro por nombre. Sin embargo, si lo desea, también puede tener procesos de clasificación de pstree por PID, algo que puede hacer usando la opción de línea de comando -n.
pstree -n
Tenga en cuenta que este tipo de clasificación también se conoce como clasificación numérica.
P7. ¿Cómo hacer que el árbol de procesos de visualización de pstree sea específico para un usuario?
Si desea que pstree muestre todos los árboles de procesos enraizados en los procesos que pertenecen a un usuario específico, todo lo que tiene que hacer es pasar el nombre de ese usuario como entrada al comando.
Por ejemplo,
pstree himanshu
Entonces, en este caso, se produjo el siguiente resultado en mi sistema:
P8. ¿Cómo restringir Pstree a un proceso específico?
Si desea que pstree muestre solo la información principal y secundaria para un proceso específico, use la opción -s.
pstree -s [PID]
Por ejemplo, quería limitar la salida de Pstree solo al proceso de Firefox en mi sistema, así que ejecuté el siguiente comando:
pstree -s 3124
Y aquí está el resultado que muestra la herramienta:
Conclusión
Dependiendo del tipo de trabajo que realice, el comando pstree puede ser de gran ayuda. Aquí, en este tutorial, hemos discutido algunas opciones clave de la línea de comandos que ofrece esta herramienta. Para obtener más información, diríjase a su página de manual.