2. Informação sobre Processos: ps e pstree

Estes dois comandos exibem um lista de processos que estão sendo executados no sistema, de acordo com o critério que você selecionar. O pstree possui um saída mais limpa se comparado ao ps -f.

2.1. ps

Se executar o ps sem argumentos ele irá mostrar somente os processos iniciados por você e que estão no terminal que você está utilizando:

$ ps
       PID TTY          TIME CMD
     18614 pts/3    00:00:00 bash
     20173 pts/3    00:00:00 ps

Assim como muitos programas UNIX®, o ps possui muitas opções, das quais as mais comuns são:

  • a: exibe os processos iniciados por todos os usuários;

  • x: exibe os processos sem terminal de controle ou com um terminal de controle diferente do que você está utilizando;

  • u: exibe para cada processo o seu dono e o horário em que ele foi iniciado.

Há muito mais opções. Verifique a página do manual ps(1) para mais informações.

A saída do ps é dividida em campos diferentes: o mais interessante é o campo PID que contém o identificador do processo. O campo CMD contém o nome do comando executado. Uma maneira muito comum de executar o ps é a seguinte:

$ ps ax | less

Isto lhe dá uma lista de todos os processos que estão sendo executados, assim você pode identificar um ou mais processos que estão causando problemas e, subsequentemente, terminá-los.

2.2. pstree

O comando pstree exibe processos na forma de árvore. Uma vantagem é que você pode identificar imediatamente os pais dos processos: quando você quer matar toda uma série de processos e eles são todos pais e filhos, você pode simplesmente matar o processo pai. Você usará a opção -p para exibir o PID de cada processo, e a opção -u para exibir o nome do usuário que iniciou o processo. Como a estrutura em árvore é normalmente bem grande, você precisaria chamar o pstree da seguinte maneira:

$ pstree -up | less

Isto lhe dá uma melhor visualização de toda a árvore de processos.