Al trabajar en una máquina Linux, a veces es posible que necesite averiguar qué procesos se están ejecutando actualmente. Hay varios comandos que puede usar para encontrar información sobre los procesos en ejecución, con ps
y top
siendo los más utilizados.
En este artículo, hablaremos sobre el pstree
dominio. Es similar a ps
, pero en lugar de enumerar los procesos en ejecución, los muestra en un árbol. El formato de árbol es una forma más conveniente de mostrar la jerarquía de procesos y hace que la salida sea más atractiva visualmente.
Cómo usar el pstree
Comando #
La sintaxis general para pstree
El comando es el siguiente:
ps [OPTIONS] [USER or PID]
En su forma más simple cuando se invoca sin ninguna opción o argumento, pstree
muestra una estructura de árbol jerárquica de todos los procesos en ejecución:
pstree
systemd─┬─VBoxService───7*[{VBoxService}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─2*[iscsid]
├─lvmetad
├─lxcfs───2*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─nginx───2*[nginx]
...
El elemento superior/raíz del árbol es el proceso principal de todos los procesos del sistema. En este ejemplo, es systemd
, que es el primer proceso que se inicia al arrancar.
pstree
fusiona ramas idénticas colocándolas entre corchetes y prefijándolas con un número entero que representa el número de ramas. Esto hace que la salida sea más legible y visualmente atractiva.
A continuación se muestra un ejemplo que muestra cómo se utilizan los corchetes:
├─2*[agetty]
es lo mismo que:
├─agetty
├─agetty
Para deshabilitar la fusión de ramas idénticas, use -c
opción:
pstree -c
Los subprocesos de un proceso se muestran debajo del proceso principal y se muestran con el nombre del proceso entre llaves. Aquí hay un ejemplo:
├─lxcfs───2*[{lxcfs}]
Usa el -t
opción para mostrar los nombres completos de los subprocesos. Si desea ocultar hilos y mostrar solo procesos, use -T
opción.
Normalmente, pstree
muestra muchas líneas de salida que no caben en la pantalla. Para ver la salida una página a la vez, canalícela a less
comando:
pstree | less
Si se proporciona un nombre de usuario como argumento, pstree
muestra solo los procesos propiedad de ese usuario. Por ejemplo, el siguiente comando mostrará solo aquellos procesos que haya iniciado un usuario llamado “linuxize”:
pstree linuxize
Cuando se especifica PID como argumento, pstree
muestra un árbol con el proceso dado como la raíz del árbol. Aquí hay un ejemplo:
pstree 1943
sshd───bash───pstree
Para mostrar los procesos principales del proceso dado, use -s
opción seguida del PID del proceso:
pstree -s 1943
systemd───sshd───sshd───bash───pstree
Mostrar PID y PGID #
Por lo general, cuando se ejecuta pstree
comando, la información más importante que el usuario está buscando es el ID del proceso. Por ejemplo, conocer el PID le permite eliminar un proceso que no funciona correctamente.
El -p
opción instruye a pstree
para mostrar los PID:
pstree -p
Los PID se muestran entre paréntesis después de cada proceso o subproceso.
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
│ ├─{VBoxService}(957)
│ ├─{VBoxService}(958)
│ ├─{VBoxService}(959)
│ ├─{VBoxService}(960)
│ ├─{VBoxService}(961)
│ └─{VBoxService}(962)
...
Por defecto, pstree
, ordene los procesos con el mismo padre por nombre. El -n
opción le dice a pstree
para usar la ordenación numérica, es decir, ordenar por PID:
pstree -pn
El ID de grupo de procesos o PGID es el ID de proceso del primer miembro del grupo de procesos. Para ver los PGID, use -g
opción:
pstree -g
Los PID también se muestran entre paréntesis después de cada proceso o subproceso.
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ └─{VBoxService}(954)
...
Cuando se muestran los PID o PGID, la combinación se desactiva implícitamente.
Mostrar argumentos de la línea de comandos #
Algunos programas se pueden invocar con opciones de configuración especificadas como argumentos de línea de comandos.
Por defecto, el pstree
no le muestra los argumentos de la línea de comando para los procesos en ejecución. Para ver cómo se inició el proceso, use el comando junto con -a
opción:
pstree -a
...
├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
├─agetty -o -p -- \\u --noclear tty1 linux
...
Resaltar #
pstree
también le permite resaltar procesos para una mejor representación visual.
El -h
opción instruye a pstree
para resaltar el proceso actual y todos sus ancestros.
pstree -h
Para resaltar un proceso específico, use -H
opción seguida del ID del proceso:
pstree -H PID_NUMBER
Si no se admite el resaltado, el comando saldrá con un error.
Conclusión #
El pstree
El comando muestra los procesos en ejecución en forma de estructura de árbol.
Para obtener información sobre todos los pstree
disponibles opciones, escriba man pstree
en tu terminal.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.