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:
- Veja o que está rodando agora.
- Verifique a carga e o status.
- 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 auxmostra 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
toppara 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
nprocmostra. 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 -9a 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). Usekill -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
greptambé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:
- Pressione
Ctrl + Cna janela onde ele roda. - Só se isso não resolver, envie
kill PIDa 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..
- Se o STAT for qualquer coisa menos
D, comoSouR: espere algumas dezenas de segundos, verifique de novo e só então rodekill -9 2345. - Se o STAT for
D: okill -9não encerra. Espere a entrada ou saída terminar. Se ficar emDpor 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 PIDsó depois de esperar algumas dezenas de segundos.
Passo 4: Verificar
- Rodou
ps auxde 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.
- Gerenciamento de Processos Prático - Controle de jobs, pkill, nice
- Comandos Essenciais do Linux
- Permissões Básico