Header Ads

Como usar o comando ps para monitorar processos Linux

Obtenha um instantâneo dos processos em execução no seu computador Linux com o comando pscommand. Localize processos por nome, usuário ou mesmo terminal com os detalhes necessários.Nós mostramos a você como.

Gerenciamento de processos no Linux

O coração pulsantede todos os sistemas operacionais Linux e Unix é o kernel. Entre suas muitas responsabilidades está a alocação de recursos do sistema, como RAM e tempo de CPU. Elas precisam ser manipuladas em tempo real, para que todos os processos em execução obtenham seu quinhão justo, de acordo com a prioridade de cada tarefa.

Às vezes, as tarefas podem travar ou entrar em um loop restrito ou deixar de responder. por outras razões. Ou eles podem continuar em execução, mas consomem muito tempo de CPU ou RAM, ou se comportam de maneira igualmente anti-social.Às vezes, as tarefas precisam ser mortas como uma misericórdia para todos os envolvidos.O primeiro passo. Claro, é identificar o processo em questão.

Mas talvez você não tenha nenhum problema de tarefa ou desempenho. Talvez você esteja curioso sobre quais processos estão sendo executados dentro do seu computador, e você gostaria de espiar por baixo do capô.O comando ps satisfaz essas duas necessidades. Ele fornece uma visão geral do que está acontecendo dentro do seu computador no momento. O ps é flexível o suficiente para fornecer exatamente as informações necessárias no formato exato em que você está &’Eu gosto disso. De fato, o ps tem muitas opções. As opções descritas aqui atenderão às necessidades mais comuns. Se você precisar se aprofundar mais no ps do que o descrito neste artigo, você descobrirá que nossa introdução facilita a digitação da página de manual.

Processos de listagem

A maneira mais fácil de usar ps é iniciá-lo sem parâmetros:

 ps 

ps exibe uma lista dosprocessos iniciados pelo usuário que executou o comando.

As quatro colunas são:

  • PID: o número de identificação do processo.
  • TTY: o nome do console no qual o usuário está conectado.
  • TIME: A quantidade de tempo de processamento da CPU que o processo usou.
  • CMD: o nome do comando que iniciou o processo

Processo de listagem para todos os usuários

adicionando -e (selecione todos os processos), podemos fazer com que o ps listeprocessos que foram iniciados por todos os usuários, não apenas pelo usuário que está executando o comando ps. Como esta será uma lista longa, nós a canalizaremos para menos.

 ps -e |less 

A lista de processos é canalizada para menos.

Temos muito mais entradas nolista, mas vemos as mesmas quatro colunas de antes. As entradas com um ponto de interrogação?na coluna TTY não foram iniciadas a partir de uma janela de terminal.

Mostrando a hierarquia de processos

Às vezes, pode ajudar a descobrir um problema ou identificar um processo específico se você puder ver quais processos foram iniciados. outros processos. Usamos a opção -H (hierarquia) para fazer isso.

 ps -eH |menos 

O recuo indica quais processos são pais de quais outros processos.

Para adicionar um pouco mais de clareza,podemos pedir ao ps para adicionar algumas linhas ASCII e desenhar a hierarquia como uma árvore.A opção para fazer isso é a opção --forest.

 ps -eH --forest |menos 

Isso facilita o rastreamento de quais processos são os pais de outros processos.

Listando processos por nome

Você pode canalizar a saída de ps através de grep para listar entradas que tenham nomes que correspondam ao termo de pesquisa. Aqui, estamos procurando entradas que correspondam ao firefox do firefox. termo da pesquisa:

 ps -e |grep firefox 

Nesse caso, a saída é uma entrada única para o processo em que estamos interessados. É claro que, se lançássemos várias instâncias do Firefox,haveria mais de um item retornado na lista.

Mostrando mais colunas na saída

Para adicionar mais colunas à saída, use a opção -f (formato completo).

 ps -ef |menos 

Um conjunto extra de colunas está incluído na saída do ps.

As colunas são:

  • UID: O ID do usuário do proprietário deste processo.
  • PID: O ID do processo.
  • PPID: ID do processo pai doprocesso.
  • C: O número de filhos que o processo possui.
  • STIME: Hora de início.A hora em que o processo começou.
  • TTY: O nome do console no qual o usuário efetuou login.
  • TIME: A quantidade de tempo de processamento da CPU que o processo usou.
  • CMD: o nome do comando que iniciou o processo.

Usando a opção -F (formato extra completo), podemos obter ainda mais colunas:

 ps -eF |less 

As colunas obtidas desta vez exigem que a tela seja rolada para o lado para revelar todas elas.

Pressionandoa "seta para a direita" ”A tecla muda a exibição para a esquerda.

As colunas que obtemos agora são:

  • UID: o ID do usuário do proprietário desteprocesso.
  • PID: O ID do processo.
  • PPID: ID do processo pai do processo.
  • C: O número de filhos que o processo possui.
  • SZ: tamanho nas páginas de RAM da imagem do processo.
  • RSS: tamanho do conjunto residente. Essa é a memória física não trocada usada pelo processo.
  • PSR: o processador ao qual o processo está atribuído.
  • STIME: Hora de início.A hora em que o processo começou.
  • TTY: O nome do console no qual o usuário efetuou login.
  • TIME: A quantidade de tempo de processamento da CPU que o processo usou.
  • CMD: o nome do comando que iniciou o processo.

Listando processos por ID do processo

Depois de encontrar o ID do processo paraNo processo em que você está interessado, você pode usá-lo com o comando ps para listar os detalhes desse processo. Use a opção -p (selecione pelo ID do processo) para fazer isso:

 ps -p 3403 

Os detalhes deste processo sãolistado:

Você não está restrito a um ID de processo. Você pode fornecer uma lista de IDs de processo, separados por espaços.

Listando processos por comando

A opção -C (comando) permite procurar um processo usando o nome do comando. Ou seja, o nome do comando que iniciou o processo. Isso é sutilmente diferente da linha de comando, que pode incluir nomes de caminhos, parâmetros ou opções.

 obturador ps-C 

Os detalhespara o processo do obturador estão listados.

Listando processos de propriedade de um usuário

Para ver os processos de propriedade de um usuário específico, use a opção -u (lista de usuários):

 ps -u mary 

Os processos pertencentes à conta de usuário mary são exibidos.

Listando processos pelo terminal

Para ver os processos associados a um TTY, use a opção -t (selecione por TTY). Usada sem um número TTY, a opção -t informa os processos associados à janela atual do terminal.

 tty 

 ps -t 

O comando tty informa que esse é o pseudo-teletipo 0. Os processos listados por ps -t estão todos associados ao TTY pts / 0.

Se passarmos um número TTYna linha de comando, devemos obter um relatório dos processos associados a esse TTY.

 ps -t 1 

Desta vez, otodos os processos estão associados ao TTY pts / 1.

RELATED: O que é um TTY no Linux?(e como usar o comando tty)

Selecionando colunas para exibição

Com a opção -o (formato), você pode selecionar quais colunas deseja incluir na saída do ps. Você especifica as colunas pelo nome.A lista (longa) de nomes de colunas pode ser vista na página de manual na seção intitulada "Especificadores de formato padrão". ”Neste exemplo, estamos optando por incluir o tempo da CPU (pcpu) e a linha de comando com argumentos (args) incluídos na saída.

 ps -e -o pcpu, args|menos 

A saída inclui apenas nossas duas colunas solicitadas.

Classificando a saída por colunas

Você pode ordenar a saída usando a opção --sort. Vamos classificar a saída pela coluna da CPU:

 ps -e -o pcpu, args --sort -pcpu |menos 

O hífen “ - ”no parâmetro de classificação pcpu, é exibida uma ordem de classificação decrescente.

Para ver os dez processos mais intensivos da CPU, canalize a saída pelo comando:

 ps -e -o pcpu, args --sort -pcpu |head -10 

Obtemos uma lista truncada e ordenada.

Se adicionarmos mais colunas à nossa exibição,podemos classificar por mais colunas. Vamos adicionar a coluna pmem. Essa é a porcentagem da memória do computador que está sendo usada pelo processo. Sem um hífen, ou com um sinal de mais ”+ “, a ordem de classificação está aumentando.

 ps -e -o pcpu, pmem, args --sort -pcpu, pmem |cabeça -10 

Obtemos nossa coluna extra e a nova coluna é incluída na classificação.A primeira coluna é classificada antes da segunda e a segunda coluna em ordem crescente, porque não colocamos um hífen no pmem.

Deixe &’ s torná-lo um pouco mais útil e adicionar na coluna ID do processo (pid) para que possamos ver o número do processo de cada processo em nossa listagem.

 ps -e -o pid, pcpu, pmem, args --sort -pcpu, pmem |head -10 

Agora podemos identificar os processos.

Processando processos por ID de processo

Assim, de uma maneira ou de outra, podemos identificar os processos que estão sendo executados. Ao conhecer o ID do processo, podemos (se precisarmos) matar qualquer um desses processos usando o comando kill. Se quisermos matar o processo 898, usaremos este formato:

 sudo kill 898 

Se tudo correr bem,o processo é encerrado silenciosamente.

RELACIONADO: Como eliminar processos do terminal Linux

Processando processos por nome

O comando pkill permite matar processos por nome. Certifique-se de que você identificou o processo correto!Este comando encerrará o processo principal.

 sudo pkill top 

Novamente, nenhuma notícia é uma boa notícia.O processo é encerrado silenciosamente.

Matando vários processos por nome

Se você tiver várias cópias de um processo em execução, ou se um processo gerou um númerode processos filhos (como o Google Chrome pode fazer), como você pode matá-los?Isso é tão fácil. Usamos o comando killall.

Temos duas cópias do top running:

 ps -e |grep top 

Podemos finalizar os dois com este comando:

 sudo killall top 

Nenhuma resposta significa que não há problemas; portanto, ambos os processos foram encerrados.

Obtenha uma visão dinâmica com a parte superior

A saídado ps é uma visualização de instantâneo. Ele não é atualizado. Para obter uma visão atualizada dos processos, use o comando top. Ele fornece uma visão dinâmica dos processos em execução no seu computador.O visor está dividido em duas partes.Há uma área do painel na parte superior da tela, composta por linhas de texto e uma tabela na parte inferior da tela, composta por colunas.

Comece no topo com este comando:

 topo 

As colunas contêm informações sobre os processos:

  • PID: ID do processo
  • USUÁRIO: Nome do proprietário do processo
  • PR: Prioridade do processo
  • NI: O bom valor do processo
  • VIRT: Memória virtual usada peloprocesso
  • RES: memória residente usada pelo processo
  • SHR: memória compartilhada usada pelo processo
  • S: Status do processo. Veja a lista abaixo dos valores que esse campo pode receber
  • % CPU: o compartilhamento do tempo de CPU usado pelo processo desde a última atualização
  • % MEM: compartilhamento de memória física usada
  • TIME +: tempo total de CPU usado pela tarefa em centésimos de segundo
  • COMANDO: nome do comando ou linha de comando (nome e parâmetros da linha de comando) Se a coluna de comando não puder ser vista, pressionea "seta para a direita" ”chave.

O status do processo pode ser um dos seguintes:

  • D: suspensão ininterrupta
  • R: executando
  • S: Adormecido
  • T: Rastreado (parado)
  • Z: Zumbi

Pressione o “ Q ”chave para sair do topo.

RELACIONADO: 37 Comandos importantes do Linux que você deve conhecer

Antes de encerrar um processo

Verifique se é o que você &’ depois, e verifique se isso não vai causar nenhum problema. Em particular, vale a pena conferir com as opções -H (hierarquia) e --forest para garantir que não haja nenhum processo filho importante que você tenha esquecido.

Via: How to Geek

Veja Também:

Nenhum comentário