Verificando processos com os comandos ps e pstree no Linux
Linux e Unix

Verificando processos com os comandos ps e pstree no Linux




O comando ps gera um instantâneo dos processos atuais no terminal e permite mostrar informações sobre uma seleção dos processos ativos.


Sintaxe:
ps [opções]
Há três estilos de opções disponíveis:


1. Opções padrão do Unix: podem ser agrupadas e são precedidas por um hífen.
# ps -ax


2. Opções BSD: podem ser agrupadas e não são precedidas por um hífen.
# ps ax


3. Opções longas GNU: Não são agrupadas e são precedidas por dois hífens.
# ps --all


Podemos misturar opções de tipos diferentes livremente, porém tomando cuidado pois conflitos podem ocorrer.


Opções principais do comando ps:
-a  Mostra processos de propriedade de outros usuários e vinculados a um terminal
-e  Selecionar todos os processos. Idêntico a -A
-l   Formato longo, incluindo prioridade, PPID, etc.
-r   Mostrar apenas processos em execução
-u  Formato de usuário, com nomes de usuário e hora de início dos processos
-x   Inclui processos sem terminal de controle (daemons, GUI.)
-U usuário   Exibe processos de propriedade do usuário.
-L  “Lightweight Process” / LWP, mostra os threads associados a um processo específico.
-T  Mostrar threads, com coluna SPID


Campos comuns exibidos nas saídas do comando:
USER: Usuário proprietário do processo
PID: ID do processo
%CPU: % dos recursos de CPU que o processo está usando
%MEM: % da memória real que o processo está usando
VSZ: Tamanho virtual do processo em KiB
RSS: Resident Set Size (Total de memória usada pelo processo e seus arquivos)
TTY: Identificador do terminal de controle
STAT: Estado de processo atual
START: Horário em que o processo foi iniciado
COMMAND: Nome do comando e argumentos.
LWP: ightweight Process (Thread)


Estado dos processos retornados por ps:


Flags adicionais:


Sendo que:
Executável: O processo pode ser executado (quando houver tempo de CPU disponível)
Dormente: O processo está aguardando algum recurso
Zumbi: O processo está tentando se destruir
Parado: O processo é suspenso (não há permissão para ser executado).


Exemplos:


1. Mostrar todos os processos:
# ps ax
A listagem continua, apenas uma parte é mostrada na figura acima. As opções ax nos trazem o PID, TTY, Status, Tempo de Execução e Comando que originou o processo.


2. Mostrar todos os processos com informações detalhadas:
# ps aux


3. Mostrando apenas os processos do usuário fabio:
# ps -f -u fabio


4. Mostrar os processos com informações técnicas adicionais, como PPID (PID do processo pai) , Flags associadas (F), Valor Nice (NI), prioridade do processo (PRI) e função do kernel no qual o processo está dormente (WCHAN):
# ps lax


5. Verificar o processo associado e informações gerais de um programa em execução, como o navegador web Iceweasel. Para isso filtraremos a saída do comando ps com o grep:
ps aux | grep iceweasel
Veja que o PID do processo principal do Iceweasel é 4031. O PID 4087 mostrado é do próprio processo grep que usamos para filtrar a saída do comando ps.


6. Mostrar os threads associados a um processo específico. Por exemplo, suponhamos que o navegador Iceweasel esteja rodando no momento. Podemos descobrir seu PID (como fizemos no exemplo anterior) e depois os threads associados usando o comando ps com a opção -L (“Lightweight Process”, LWP):
ps -p 4031 -L
Note a grande quantidade de threads sendo executadas pelo processo de PID 4031. Cada thread possui seu próprio TID (Thread identification), que é o número que aparece na segunda coluna da listagem acima.


7. Classificar os processos em ordem de utilização da CPU (“pcpu”):
# ps aux --sort=-pcpu
Veja que os valores na coluna %CPU estão em ordem decrescente.


8. Mostrar apenas colunas especificadas, como por exemplo, PID, % de uso da cpu e % de uso da memória RAM:
$ ps -e -o pid,pcpu,pmem


9. Mostrar o PID, usuário e tempo de execução do processo - que não é exibido por padrão. Usaremos o parâmetro etime (Elapsed Time / Tempo Decorrido):
# ps -e -o pid,user,etime


10. Mostrar processos com informações detalhadas, e threads na coluna SPID:
# ps aux -T


Comando pstree
O comando pstree permite exibir uma lista hierárquica de processos no formato de árvore.


Sintaxe:
pstree [opções]


Exemplos:
pstree -p   Inclui PIDs na saída


pstree 100  Exibe a subárvore de processos sob o processo de PID 3670:


As Threads são exibidas entre chaves nas saídas desses comandos.


Há muitos outros comandos que podemos usar para verificar e gerenciar processos, como o top, nice, renice, htop, entre outros. Os estudaremos em outros tutoriais.

Até mais!




loading...

- Comandos Pinky E W - Mostrando Informações Sobre Usuários Logados No Sistema Linux
Neste arquivo estudaremos dois comandos muito úteis para visualizar informações sobre os usuários logado atualmente no sistema: pinky e w. Comando pinky O comando pinky é como um comando finger “mais leve”, sendo utilizado para imprimir na...

- Comando Jobs No Linux
No Unix, há uma pequena diferença entre processos e jobs. Um job tipicamente é uma linha de comandos, que pode incluir um único comando, um shell script, ou vários comandos conectados por pipes. Em uma cadeia de comandos com pipes, cada comando...

- Comando Nohup - Linux
Quando executamos processos no Unix, esses processos podem rodar em foreground ou em background. Em um processo foreground, esperamos no terminal o término do processo. Desta forma, não podemos usar o terminal até que o processo tenha terminado. Podemos...

- Comando Lsof - Listar Arquivos E Processos Abertos
lsof significa "listar arquivos abertos", e é um comando usado para retornar uma listagem de todos os arquivos abertos e dos processos que os abriram.Um arquivo aberto pode ser um arquivo de disco, diretório, biblioteca, pipes, dispositivos e  sockets...

- Comandos Init E Telinit
Os comandos init e telinit permitem colocar o sistema em um nível de execução desejado, de 0 a 6, ou S e s, que são equivalentes ao runlevel 1. Na verdade, o telinit é um link para o init como podemos ver na figura abaixo: Um nível de execução...



Linux e Unix








.