Visualizar árbol de procesos en Linux con pstree
En la píldora de hoy vamos a trabajar con pstree, un pequeño programa que nos permitirá ver el árbol de procesos activos, en nuestros sistemas GNU Linux. Hay que recordar que recientemente hablamos de otro programa similar, aunque en ese caso se trataba de ‘tree’, una herramienta que nos permitiría ver el árbol de directorios.
Sobre pstree
Tal y como hemos comentado se trata de un programa que muestra los procesos, desde la línea de comandos, en forma de diagrama de árbol. Difiere del popular ‘ps’ en varios aspectos. Entre los que destaca que este último muestra los procesos en una lista en lugar de un diagrama, pero proporciona información más detallada sobre estos.
El programa pstree facilita información sobre la finalización de una serie de procesos relacionados entre sí, esto es, todos los descendientes de un proceso particular. El programa deja claro desde un principio que proceso es el primario y cuales son los secundarios. Esto evita buscar las relaciones entre los diversos procesos de manera manual.
Trabajando con pstree en CentOS
Ya sabéis que CentOS es el sistema operativo que más uso últimamente. En cualquier caso, su uso es similar en la mayoría de las distribuciones.
Su forma más común de uso es, desde la línea de comandos, la siguiente:
pstree [opciones]
Consulta su página de man podemos encontrar las siguientes indicaciones:
pstree - display a tree of processes
SYNOPSIS
pstree [-a, --arguments] [-c, --compact] [-h, --highlight-all, -Hpid, --highlight-pid pid]
[-g] --show-pgids] [-l, --long] [-n, --numeric-sort] [-N, --ns-sortns [-p, --show-pids]
[-s, --show-parents] [-S, --ns-changes] [-u, --uid-changes] [-Z, --security-context]
[-A, --ascii, -G, --vt100, -U, --unicode] [pid, user]
pstree -V, --version
Veamos una salida utilizando el comando sin parámetros:
root@raspberrypi:~# pstree
systemd─┬─2*[agetty]
├─avahi-daemon───avahi-daemon
├─cron
├─dbus-daemon
├─dhcpcd
├─fail2ban-server───2*[{fail2ban-server}]
├─master─┬─pickup
│ ├─qmgr
│ └─tlsmgr
├─monit───{monit}
├─ntpd
├─rsyslogd─┬─{in:imklog}
│ ├─{in:imuxsock}
│ └─{rs:main Q:Reg}
├─snmpd
├─sshd───sshd───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
└─thd
Con el parámetro “-a” , nos muestra la línea de comandos utilizada. Por ejemplo, si el comando utiliza la ruta a un fichero de configuración.
Por defecto se inhabilita la visualización en el árbol de los nombres repetidos. Para evitar esto, podemos utilizar el parámetro “-c”
Si nos interesa podemos ver el árbol de un proceso específico, de la siguiente manera:
pstree -H [PID]
Un ejemplo sería:
Utilizando el parámetro “-g”, veremos los procesos agrupados por grupo.
Los datos de salida del programa están ordenados de manera alfabética. En cambio, podemos indicar que la salida sea basada en los números de PID, utilizando el parámetro “-n”
Veamos una combinación de varios de los parámetros:
De forma fácil podemos ver el árbol de procesos de un usuario único, de la siguiente manera, mediante la opción «-u» :
root@raspberrypi:~# pstree -ucgn snmp
snmpd(705)
Lo dejamos aquí, espero que en algún momento os sea de utilidad. Nos vamos leyendo ^.^
Para el artículo me he servido de la siguientes fuentes:
linfo.org – The pstree Command
HowTheForge.com – Linus pstree Command Tutorial for Beginners (8 Examples)