Usando o comando PS como um ninja

Comando PS - Destaque

Você que utiliza o Linux já deve conhecer o Comando PS, até porque ele é um dos mais básicos comandos do Linux. O que você talvez não saiba é que você pode aprender a usar este comando como um Ninja e facilitar muito sua vida na administração de sistemas Linux.

Como sabemos, os o comando ps lista os processos em execução no sistema, e você consegue saber tudo que está sendo executado no momento. Agora, muitos não sabem usar ao fundo este comando, e com ele é possível por exemplo:

  • Identificar qual processo é de determinado usuário
  • Identificar qual processo utiliza mais memória ou processamento
  • Saber como está formada a árvore de processos
  • Criar um monitor em tempo real

O Básico do Comando PS

Primeiro começamos com o Básico. Para listar todos os processos, temos duas formas de mostrar os resultados:

Formato BSD

$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 185408 4936 ? Ss Mai27 0:05 /sbin/init splash
root 2 0.0 0.0 0 0 ? S Mai27 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< Mai27 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S< Mai27 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S Mai27 0:04 [ksoftirqd/0]
root 8 0.0 0.0 0 0 ? S Mai27 6:01 [rcu_sched]
root 9 0.0 0.0 0 0 ? S Mai27 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S Mai27 0:00 [migration/0]
root 11 0.0 0.0 0 0 ? S Mai27 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S Mai27 0:00 [cpuhp/0]

Ou o formato UNIX/Linux

$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Mai27 ? 00:00:05 /sbin/init splash
root 2 0 0 Mai27 ? 00:00:00 [kthreadd]
root 4 2 0 Mai27 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Mai27 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 Mai27 ? 00:00:04 [ksoftirqd/0]
root 8 2 0 Mai27 ? 00:06:01 [rcu_sched]
root 9 2 0 Mai27 ? 00:00:00 [rcu_bh]
root 10 2 0 Mai27 ? 00:00:00 [migration/0]
root 11 2 0 Mai27 ? 00:00:00 [watchdog/0]
root 12 2 0 Mai27 ? 00:00:00 [cpuhp/0]

A diferença é pequena, mas na primeira opção temos como destaque o %CPU e %MEM que mostram respectivamente o percentual de consumo de CPU ou memória do sistema.

LEIA  Como reparar, restaurar ou instalar novamente o GRUB

Identificando os processos de um usuário

Podemos localizar todos os processos de um usuário simplesmente filtrando com a opção -u depois o nome do usuário.

$ ps -f -u marcos
UID PID PPID C STIME TTY TIME CMD
marcos 1022 1551 0 Mai27 ? 00:01:02 /usr/bin/anydesk --local-service
marcos 1023 1022 0 Mai27 ? 00:00:13 /usr/bin/anydesk --local-service
marcos 1540 1 0 Mai27 ? 00:00:00 /lib/systemd/systemd --user
marcos 1541 1540 0 Mai27 ? 00:00:00 (sd-pam)
marcos 1549 1 0 Mai27 ? 00:10:02 /usr/bin/gnome-keyring-daemon --daemonize --login
marcos 1551 1362 0 Mai27 ? 00:00:00 /sbin/upstart --user
marcos 1620 1551 0 Mai27 ? 00:06:09 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-mINqoOxLkR
marcos 1642 1551 0 Mai27 ? 00:00:00 upstart-udev-bridge --daemon --user
marcos 1674 1551 0 Mai27 ? 00:00:02 upstart-dbus-bridge --daemon --session --user --bus-name session
marcos 1675 1551 0 Mai27 ? 00:00:00 upstart-dbus-bridge --daemon --system --user --bus-name system

Identificar o maior consumo de memória

Neste exemplo utilizo uma pequena alteração para que o resultado seja mais customizado. Colocando a opção -eo e depois listando os campos a serem exibidos pid,cmd,%mem,%cpu e depois com a opção –sort para organizar por consumo de memória.

Como a lista fica grande, colocamos o | head no final para mostrar somente os primeiros resultados.

$ ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head
PID CMD %MEM %CPU
3726 /usr/lib/firefox/firefox -c 12.0 0.0
2318 /usr/lib/thunderbird/thunde 7.2 0.8
31405 kdenlive 6.4 0.5
4129 /opt/google/chrome/chrome 4.9 2.9
2312 /usr/lib/firefox/firefox 4.3 2.5
4177 /opt/google/chrome/chrome - 3.6 0.8
3962 /usr/lib/firefox/firefox -c 2.6 0.0
16445 /opt/google/chrome/chrome - 2.4 14.2
8712 /opt/google/chrome/chrome - 2.0 0.3

Árvore de processos

Podemos fazer uma lista da árvore de um determinado processo com a opção –forest para listar tudo que partiu do chrome

$ ps -f --forest -C chrome
UID PID PPID C STIME TTY TIME CMD
marcos 4129 1749 2 Mai27 ? 04:52:13 /opt/google/chrome/chrome
marcos 4138 4129 0 Mai27 ? 00:00:00 \_ /opt/google/chrome/chrome --
marcos 4142 4138 0 Mai27 ? 00:00:07 | \_ /opt/google/chrome/chrom
marcos 4226 4142 0 Mai27 ? 00:00:28 | \_ /opt/google/chrome/c
marcos 4242 4142 0 Mai27 ? 00:00:11 | \_ /opt/google/chrome/c
marcos 4257 4142 0 Mai27 ? 00:00:11 | \_ /opt/google/chrome/c
marcos 4269 4142 1 Mai27 ? 03:12:03 | \_ /opt/google/chrome/c
marcos 4271 4142 0 Mai27 ? 00:01:40 | \_ /opt/google/chrome/c
marcos 4294 4142 0 Mai27 ? 00:48:32 | \_ /opt/google/chrome/c
marcos 4297 4142 0 Mai27 ? 00:12:51 | \_ /opt/google/chrome/c
marcos 4307 4142 0 Mai27 ? 00:00:28 | \_ /opt/google/chrome/c
marcos 4314 4142 0 Mai27 ? 00:01:59 | \_ /opt/google/chrome/c
marcos 4675 4142 0 Mai27 ? 00:00:10 | \_ /opt/google/chrome/c
marcos 4820 4142 0 Mai27 ? 01:34:36 | \_ /opt/google/chrome/c
marcos 4834 4142 0 Mai27 ? 01:08:59 | \_ /opt/google/chrome/c
marcos 26089 4142 0 Mai27 ? 00:04:53 | \_ /opt/google/chrome/c
marcos 26645 4142 0 Mai27 ? 00:03:17 | \_ /opt/google/chrome/c
marcos 13380 4142 0 Mai28 ? 00:00:02 | \_ /opt/google/chrome/c
marcos 8712 4142 0 Mai28 ? 00:27:33 | \_ /opt/google/chrome/c
marcos 19108 4142 0 Mai31 ? 00:00:01 | \_ /opt/google/chrome/c
marcos 4109 4142 0 Jun02 ? 00:00:08 | \_ /opt/google/chrome/c
marcos 4464 4142 0 Jun02 ? 00:00:04 | \_ /opt/google/chrome/c
marcos 8768 4142 0 Jun02 ? 00:10:56 | \_ /opt/google/chrome/c
marcos 8815 4142 0 Jun02 ? 00:00:19 | \_ /opt/google/chrome/c
marcos 7126 4142 0 11:37 ? 00:00:01 | \_ /opt/google/chrome/c
marcos 7179 4142 0 11:37 ? 00:01:05 | \_ /opt/google/chrome/c
marcos 7280 4142 3 11:39 ? 00:04:35 | \_ /opt/google/chrome/c
marcos 9265 4142 0 12:30 ? 00:00:43 | \_ /opt/google/chrome/c
marcos 9974 4142 13 12:46 ? 00:10:46 | \_ /opt/google/chrome/c
marcos 10903 4142 0 13:07 ? 00:00:00 | \_ /opt/google/chrome/c
marcos 10992 4142 0 13:08 ? 00:00:06 | \_ /opt/google/chrome/c
marcos 11142 4142 4 13:11 ? 00:02:21 | \_ /opt/google/chrome/c
marcos 11319 4142 16 13:16 ? 00:08:21 | \_ /opt/google/chrome/c
marcos 16445 4142 10 13:53 ? 00:01:32 | \_ /opt/google/chrome/c
marcos 4177 4129 0 Mai27 ? 01:26:55 \_ /opt/google/chrome/chrome --
marcos 4180 4177 0 Mai27 ? 00:00:00 \_ /opt/google/chrome/chrome

Criar um monitor em tempo real para os consumos de memória e CPU

Para isto, temos que deixar uma janela de terminal somente para este monitor em tempo real.

$ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

Cada 1,0s: ps -e -o pid,uname,cmd,pmem,pcpu --sort=...

 PID USER CMD %MEM %CPU
3726 marcos /usr/lib/firefox/firefox -c 12.5 0.0
2318 marcos /usr/lib/thunderbird/thunde 7.1 0.8
31405 marcos kdenlive 6.4 0.5
4129 marcos /opt/google/chrome/chrome 4.9 2.9
2312 marcos /usr/lib/firefox/firefox 4.4 2.5
4177 marcos /opt/google/chrome/chrome - 3.6 0.8
3962 marcos /usr/lib/firefox/firefox -c 2.8 0.0
16445 marcos /opt/google/chrome/chrome - 2.5 7.7
8712 marcos /opt/google/chrome/chrome - 2.0 0.3
9974 marcos /opt/google/chrome/chrome - 2.0 12.2
7179 marcos /opt/google/chrome/chrome - 1.9 0.6
4297 marcos /opt/google/chrome/chrome - 1.8 0.1
15449 marcos /usr/lib/virtualbox/Virtual 1.8 31.9
1106 root /usr/lib/xorg/Xorg -core :0 1.7 1.6

Esta janela ficará se atualizando a cada 1 segundo. Para sair, basta você apertar CTRL + C e pronto.

LEIA  Iniciando o Debian Jessie em modo texto

Espero que tenham gostado das formas de usar o comando ps e que isto facilite bastante seu dia a dia.

WalmartBR

Talvez você goste...

Instalar o TeamViewer no Ubuntu, Debian, Mint e derivad... Saiba como instalar facilmente o TeamViewer em sistemas Ubuntu, Debian, Mint e todos os derivados
Qual a senha de um Linux Live ? As distribuições Linux Live não necessitam de senha para funcionar, mas algumas vezes sua tela pode bloquear. Como tirar esta senha ?
Usando o arquivo de Swap no Linux Como criar o arquivo e utilizar como Swap no Linux para sua VPS parar de travar
Configurando uma lixeira no Servidor Samba Linux (com a... Não se desespere mais quando arquivos forem apagados do Samba
Login automatico com chave ssh no Linux Aprendendo a criar chaves privadas e autenticar sem senha em servidores Linux

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.