pstree – Uma Visão Mais Objetiva dos Processos

Normalmente, quando desejamos ver quais processos estão rodando em nosso servidor, usamos o comando:

  ps -ef | more

A saída deste comando, que usamos diariamente, muitas vezes, não é das mais fáceis de se interpretar. Uma alternativa mais inteligente, é o comando pstree. A árvore de processos tem sua raiz a partir de um PID (Process ID), ou a partir do processo init. Se o nome de um usuário é especificado, a árvore de processos possui como raiz os processos deste usuário.

Vejamos um exemplo:

  % pstree
  init-+-acpid
       |-apache2-+-apache2
       |         `-2*[apache2---26*[{apache2}]]
       |-atd
       |-avahi-daemon---avahi-daemon
       |-bonobo-activati---{bonobo-activati}
       |-chrome-+-chrome
       |        |-chrome---3*[{chrome}]
       |        `-19*[{chrome}]
       |-chrome---7*[chrome---{chrome}]
       |- console-kit-dae---63*[{console-kit-dae}]
       |-cron
       |-2*[dbus-daemon]
       |-dbus-launch
       |-dd
       |-devkit-disks-da---devkit-disks-da
       |-devkit-power-da
       |-dhclient
       |-dhclient3
       |-drivemount_appl
       |-evolution-data----2*[{evolution-data-}]
       |-evolution-excha---{evolution-excha}
  ... diversas linhas omitidas

Para exibir a árvore de processos, bem como a identificação dos processos, usamos:

  % pstree -p
  init(1)-+-acpid(944)
          |-apache2(1803)-+-apache2(20235)
          |               |-apache2(20292)-+-{apache2}(20294)
          |               |                |-{apache2}(20295)
          |               |                |-{apache2}(20296)
          |               |                |-{apache2}(20297)
  ... diversas linhas omitidas

Pela listagem acima, podemos ver que o processo pai de todas as instâncias do Apache possui o número 20292. Para matar todos os processos do apache, é só terminar o processo pai.

Uma outra alternativa, é exibir a árvore de processos de um determinado usuário:

  % pstree rubens
  bonobo-activati---{bonobo-activati}

  chrome-+-chrome
         |-chrome---3*[{chrome}]
         `-19*[{chrome}]        

  chrome---7*[chrome---{chrome}]

  dbus-daemon

  dbus-launch

  drivemount_appl

  evolution-data----2*[{evolution-data-}]

  evolution-excha---{evolution-excha}

  gconfd-2

  gnome-session-+-bluetooth-apple
                |-compiz.real---sh---gtk-window-deco
                |-evolution-alarm---{evolution-alarm}
                |-firefox---14*[{firefox}]
                |-gdu-notificatio

O comando pstree certamente faz parte daquela lista de comandos raramente utilizados, mas muito úteis. Certamente vale a pena darmos uma atenção especial a ele. O comando faz parte do pacote coreutils de sistemas Debian e derivados. O software foi desenvolvido por Werner Almesberger e Craig Small.

Fonte: pstree – Uma Visão Mais Objetiva dos Processos