Como Usar ps, top e kill - Tutorial de Gerenciamento de Processos Linux

Como Usar ps, top e kill - Tutorial de Gerenciamento de Processos Linux

O que você vai conseguir fazer

  • Ver os processos em execução com ps aux e top
  • Escolher entre kill e kill -9 para parar com segurança
  • Evitar parar o processo errado por confundir o PID

Pré-requisitos (leia estes primeiro)

Ao trabalhar com Linux, você vai encontrar situações como estas.

  • Um comando que não responde.
  • Uso de CPU disparando de repente.
  • Não saber quais processos estão rodando.

Este artigo visa ajudá-lo a tomar decisões informadas sobre gerenciamento de processos, não apenas memorizar comandos.

Termo-chave: um processo é um programa em execução. Algumas pessoas dizem tarefa ou job. Neste artigo dizemos sempre processo.

Conclusão Primeiro: O Padrão de Decisão

Quando você tem problemas com processos, verifique nesta ordem:

  1. Veja o que está rodando agora.
  2. Verifique a carga e o status.
  3. Só se for preciso, pare com calma.

Não executar kill de imediato é a chave para prevenir acidentes.

O Que é um Processo (Conhecimento Mínimo)

Conclusão: um processo é um programa em execução. Ele recebe um novo PID a cada vez, então confirme o PID antes do kill.

Um processo é uma instância em execução de um programa. Mesmo o mesmo comando conta como um processo diferente a cada vez que roda.

Pontos-Chave para Lembrar

  • Cada processo recebe um PID (Process ID).
  • Os PIDs mudam a cada execução.

Se você esquecer que o PID muda, pode agir sobre o processo errado.

ps: Obtenha a Visão Geral Primeiro

Conclusão: o ps aux mostra o PID, o uso de CPU e o COMMAND. Comece sempre por aqui.

Forma Básica

$ ps aux
USER   PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     1  0.0  0.1 169084  1208 ?        Ss   10:00   0:01 /sbin/init
user  2345 80.2  5.1 512000 42000 ?        R    10:15   2:34 python app.py

O que significa aux: o a mostra também os processos de outros usuários. O u usa o formato voltado ao usuário, com o nome do dono e o uso de CPU e memória. O x mostra também os processos que não estão ligados a um terminalUm programa interativo que interpreta os comandos digitados e os executa.. Juntos, eles querem dizer "mostre tudo o que roda, em detalhe". Nesta forma não se usa hífen.

O Que Observar

  • PID: o número que você vai usar nos próximos comandos.
  • %CPU / %MEM: indicadores de carga.
  • COMMAND: o que está rodando.

O comando ps apenas lê o estado. Ele nunca para nem altera um processo, então você pode rodar quantas vezes quiser.

top: Veja o Que Está Pesado em Tempo Real

Conclusão: use o top para ver o load average e o uso de CPU ao vivo. Reduza os suspeitos antes de agir.

Executando

$ top

Itens Comuns para Observar

  • O load average no topo. Ele mostra quanto trabalho está na fila.
  • A coluna %CPU na lista de processos.

Exemplos de Decisão

  • Um load average alto quer dizer que a CPU está ocupada. Compare com o número de núcleos da CPU, que o nproc mostra. Acima desse número, considere a máquina congestionada.
  • Um processo com %CPU alto é o provável culpado.

Saia do top com a tecla q.

Erro Comum #1: Matar a 100% de CPU

Conclusão: não use kill -9 a 100% de CPU. Ele pula a limpeza e pode perder dados, então observe primeiro.

Concepção Errada Comum

$ kill -9 2345

Esta operação pode causar o seguinte.

  • Ela pula os procedimentos de limpeza.
  • Ela causa perda de dados ou arquivos corrompidos.

A CPU alta muitas vezes é só um trabalho temporário, então observar primeiro é a melhor escolha.

kill: Entendendo o Encerramento Seguro

Conclusão: envie primeiro o gentil kill PID (SIGTERM). Use kill -9 (SIGKILL) só quando o processo ignorar.

Básico (Parada Gentil)

$ kill 2345

Isso envia SIGTERM. O SIGTERM é um pedido que diz "por favor, encerre". O processo pode salvar o trabalho e só então fechar.

Encerramento Forçado (Último Recurso)

$ kill -9 2345
  • Use apenas quando nada mais funcionar.
  • Não faça disso um hábito.

O que acontece se errar: o kill -9 envia SIGKILL. Diferente do botão Sair de um aplicativo, ele não dá tempo para a limpeza. Um arquivo pela metade pode ficar corrompido. E se você digitar o PID errado, para outro processo.

Como testar com segurança: pratique só em processos que você mesmo iniciou. Estes três passos são seguros.

$ sleep 300 &          # 1. inicie um processo de pratica (o & roda em segundo plano)
[1] 3456               #    o numero exibido e o PID
$ ps aux | grep sleep  # 2. confirme que o COMMAND e mesmo sleep
$ kill 3456            # 3. pare apenas o processo que voce iniciou

O comando sleep só espera a quantidade de segundos indicada. Pará-lo não afeta mais nada. O terminal virtual deste site é para aprender, então o seu computador não quebra.

Erro Comum #2: Matar o Processo Errado

Conclusão: o grep também se lista. Leia a coluna COMMAND antes do kill e nunca decida só pelo PID.

Padrão Que Requer Cuidado

$ ps aux | grep python
$ kill 1234
  • O próprio grep aparece na saída.
  • Por isso é fácil ler o PID errado.

Contramedidas

  • Sempre verifique a coluna COMMAND.
  • Nunca decida apenas pelo PID.

Solução de Problemas

Conclusão: trate cada sintoma como causa, depois verificação, depois correção. Não pule direto para o encerramento forçado.

Sintoma: o comando nunca retorna

Causa: o processo em execução ainda está trabalhando.

Verificação: abra um segundo terminal e veja o estado dele.

$ ps aux | grep nome-do-comando

Correção:

  1. Pressione Ctrl + C na janela onde ele roda.
  2. Só se isso não resolver, envie kill PID a partir do outro terminal.

Sintoma: o kill não encerra

Causa: o processo não consegue receber o SIGTERM. A espera por entrada ou saída de disco é o motivo mais comum.

Verificação:

$ ps -p 2345 -o pid,stat,comm

Um D na coluna STAT indica uma espera que não aceita interrupção. Nesse estado nem o SIGKILL encerra.

Correção: a coluna STAT decide o caminhoUma sequência de texto que descreve a localização de um arquivo ou diretório..

  1. Se o STAT for qualquer coisa menos D, como S ou R: espere algumas dezenas de segundos, verifique de novo e só então rode kill -9 2345.
  2. Se o STAT for D: o kill -9 não encerra. Espere a entrada ou saída terminar. Se ficar em D por vários minutos, suspeite do disco ou do armazenamento em rede.

Quando Processos Continuam se Multiplicando

Conclusão: quando a conta só cresce, não pare por pare. Veja antes o auto-inicio, o cron e o processo pai.

Pontos para Verificar

  • Ele está iniciando sozinho?
  • Ele está agendado, por exemplo no cron?
  • Qual é o processo pai?

Em vez de parar os processos na hora, pergunte por que eles se multiplicam. É isso que evita a repetição.

Prática: Procedimento Seguro de Verificar e Parar

Conclusão: siga ps, depois top, depois kill. Essa ordem mantém observar, decidir e agir na sequência certa.

Etapas Recomendadas

$ ps aux          # 1. Obter visao geral
$ top             # 2. Verificar carga
$ kill 2345       # 3. Parar gentilmente

Atenção: o 2345 é apenas um exemplo. Não digite assim. Troque pelo PID que o ps aux do passo 1 mostrou para o processo que você quer parar.

O Que Esta Ordem Previne

  • Operações equivocadas.
  • Encerramentos forçados que não eram precisos.

Por Que Este Procedimento é Seguro

  • Ele segue observar, depois decidir, depois agir.
  • Ele evita que você confunda os PIDs.
  • Ele torna mais difícil matar uma carga que era só temporária.

No gerenciamento de processos, não ter pressa é o que mantém você seguro.

Checklist de Conclusão

Conclusão: preencha observar, decidir, agir e verificar nessa ordem. Se uma etapa ficar vazia, volte a ela.

Passo 1: Observar

  • Verificou o PID e o COMMAND do alvo com ps aux.
  • Verificou %CPU e load average com top.

Passo 2: Decidir

  • Confirmou que o trabalho não é apenas temporário.
  • Confirmou pelo nome em COMMAND que este processo pode ser parado.

Passo 3: Agir

  • Enviou primeiro o kill PID (SIGTERM).
  • Usou kill -9 PID só depois de esperar algumas dezenas de segundos.

Passo 4: Verificar

  • Rodou ps aux de novo e confirmou que o processo sumiu.
  • Confirmou que nenhum outro processo foi parado.

Resumo

Conclusão: quatro comandos cobrem todos os casos. Decore esta tabela e a decisão fica fácil.

Situação Comando Objetivo
Ver o conjunto ps aux Conferir o PID e o COMMAND
Ver a carga top Acompanhar load average e %CPU ao vivo
Parar com calma kill PID Enviar SIGTERM para o processo se encerrar direito
Último recurso kill -9 PID Forçar o fim com SIGKILL

Próximas Leituras

Conclusão: a seguir, use o artigo prático e o hub LPIC-1 para praticar ps, top e kill.

Continue Sua Jornada LPIC-1

Conclusão: Use o hub LPIC-1 e os artigos relacionados para aprofundar em gerenciamento de processos Linux.

Hub LPIC-1

  • Hub de Aprendizado LPIC-1 -- Mapa completo de artigos LPIC-1, acompanhamento de progresso e cobertura dos objetivos do exame

Artigos LPIC-1 Relacionados

Prática