De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


pstree - Uma Visão Mais Objetiva dos Processos

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 26 de abril de 2010

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 psmisc de sistemas Debian e derivados. O software foi desenvolvido por Werner Almesberger e Craig Small.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida