Mais vendidos

veja mais...

Usando o comando PS como um ninja

Aprenda a usar o comando PS no terminal do linux para controlar a memória e processamento do seu computador

Atualizado

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.

  Corrigir sistema de arquivos inconsistente no Linux

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.

  Lançamento do BigLinux 19.04

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

Comando PS, Comandos Linux

Apoio

Participe da campanha!

Cafézinho

Quer me pagar um café? Pode usar a chave PIX abaixo

Chave PIX e-mail

[email protected]

Vídeos

Assista e se inscreva em nosso canal!

NEWSLETTER

Cadastre-se gratuitamente e fique por dentro de todas as novidades do blog, como dicas e tutoriais.

Não enviamos spams, fique tranquilo

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.