Skip to main content

Remoção de processos, instalativos, arquivos em processo | Linux

  • Remoção de processos, instalativos, arquivos em processo | Linux

Como matar um processo corretamente no Linux

Esta documentação descreve o procedimento correto para encerrar processos, evitando efeitos colaterais como:

  • processos zumbis
  • arquivos “deleted” ainda abertos
  • consumo invisível de CPU, memória ou disco

O objetivo é parar o processo com segurança e validar que nada ficou rodando.


Identificar o processo

Antes de matar qualquer coisa, identifique exatamente o processo alvo.

Listar processos pelo nome

ps aux | grep nome_do_processo

Ou, de forma mais limpa:

pgrep -a nome_do_processo

Ver processos em tempo real

top

ou

htop

Anote:

  • PID
  • usuário
  • comando completo

Encerrar o processo da forma correta

Tentativa 1 — Encerramento gracioso (recomendado)

Envia o sinal SIGTERM, permitindo que o processo finalize corretamente.

kill PID

Ou:

kill -15 PID

Use sempre este método primeiro.


Tentativa 2 — Encerrar pelo nome do processo

Útil quando há múltiplos PIDs.

pkill nome_do_processo

Ou, com confirmação visual:

pkill -f nome_do_processo

Tentativa 3 — Forçar encerramento (último recurso)

Use apenas se o processo não responder ao SIGTERM.

kill -9 PID

Ou:

pkill -9 nome_do_processo

Este método não permite cleanup, podendo gerar:

  • arquivos temporários presos
  • logs corrompidos
  • locks não liberados

Encerrar processos gerenciados por systemd

Se o processo roda como serviço, não use kill diretamente.

Identificar o serviço

systemctl | grep nome

Parar o serviço corretamente

systemctl stop nome-do-servico

Impedir que ele volte no boot

systemctl disable nome-do-servico

Opcionalmente, bloquear totalmente:

systemctl mask nome-do-servico

Validar que o processo não está mais rodando

Verificar se ainda existe PID ativo

ps aux | grep nome_do_processo

Ou:

pgrep nome_do_processo

Se não houver saída, o processo foi encerrado.


Verificar serviços ativos

systemctl status nome-do-servico

O estado deve ser:

inactive (dead)

Validar se não ficou nada aberto no sistema

Verificar arquivos deletados ainda abertos

Esse é o ponto mais crítico.

lsof | grep deleted

Se aparecer algo como:

processo  PID  usuário  ... arquivo.log (deleted)

Significa que o processo ainda está ativo ou foi mal encerrado.


Validar consumo real de disco

df -h

Compare com:

du -sh /

Diferença grande entre df e du normalmente indica:

  • arquivos deletados abertos
  • processos presos

Validar consumo de CPU e memória

top

Ou:

ps aux --sort=-%mem | head
ps aux --sort=-%cpu | head

Nenhum processo inesperado deve aparecer.


Procedimento seguro recomendado (resumo operacional)

  1. Identificar o processo (ps, pgrep)
  2. Encerrar com kill (SIGTERM)
  3. Se for serviço, usar systemctl stop
  4. Validar que não existe mais PID ativo
  5. Verificar lsof | grep deleted
  6. Conferir df -h e top

Observações importantes

  • Nunca apagar arquivos de log ativos com rm
  • Para zerar logs em uso, utilize:
truncate -s 0 arquivo.log
  • Sempre prefira parar serviços pelo systemctl
  • Use kill -9 apenas quando não houver alternativa