Como Encontrar e Matar Processos Zumbis no Linux?

Antes de tudo, vamos fazer uma introdução falando sobre o que é processo. Isso facilitará o entendimento sobre processos zumbis, que nada mais são que processos órfãos.

Processos

Podemos ver os processos usando ferramentas como top, ps ou pstree.

Um processo é uma parte(uma instância) de um programa que está sendo executado. Um programa pode ter várias instâncias.

Ainda, exceto o processo systemd ou o antigo init, todos os demais processos terão pais e também poderão ter filhos.

O processo systemd(ou init em distros antigas) é considerado o pai de todos os processos, pois está acima de todos.

 

Identificação dos Processos: PID e PPID

 

PID: Um processo é identificado por um número, o PID ou Process ID. Bom…. process id é  a mesma coisa que “id do processo”. Id aqui é a abreviação de identificação. O PID do processo init ou systemd é o número zero.

PPID:  essa é a identificação(PID) do pai do processo. PPID vem de parent(pai) process id.

 

 

Processo Zumbi

Um processo zumbi, também chamado de defunct, nada mais é um processo morto mas que o pai não foi informado da sua morte. Em ambiente normal, quando um processo “morre”  o processo pai é informado e ele acaba fazendo uma limpeza, como por exemplo  para liberar memória ram. Para o pai o processo filho ainda existe, não está morto.

Geralmente processos zumbis são inofensivos. Podem estar usando memória ram, mas em tempos atuais onde computadores novos estão fartos de tanta memória ram, podemos nem perceber a existência de zumbis.

 

Detectando Processos Zumbis

Um processo pode estar em algum desses estados(status)

  • D: dormindo  ininterruptamente
  • I: ocioso(idle)
  • R: rodando(executado)
  • S: dormindo
  • T: parado por sinal
  • t: parado por algum debugador
  • Z: zumbi

O estado Z é o que mais nos interessa.

 

Vendo se há processos zumbis usando PS

Usarmos “ps -eo ppid,pid,user,stat,args –sort stat | grep Z

  • ps -e exibe cada processo no sistema
  • a letra “o” em ps -eo nos possibilita escolher as colunas que desejamos ver, nesse caso escolhi essas ppid,pid,user,stat,args
  • O “…| grep Z” é para mostrar somente linhas contendo a letra Z.

 

elder@server01:~$ ps -eo ppid,pid,user,stat,args --sort stat | grep Z 
  
   9092    9833 elder    Z    [opera_autoupdat] <defunct>
   9092   26105 elder    Z    [opera_autoupdat] <defunct>
   9092   94727 elder    Z    [opera_autoupdat] <defunct>
   9092  103094 elder    Z    [opera_autoupdat] <defunct>
   9092  103647 elder    Z    [opera_autoupdat] <defunct>
   9092  104239 elder    Z    [opera_autoupdat] <defunct>
   9092  110845 elder    Z    [opera_autoupdat] <defunct>
   9092  114688 elder    Z    [opera_autoupdat] <defunct>
   9092  138148 elder    Z    [opera_autoupdat] <defunct>
   9092  143760 elder    Z    [opera_autoupdat] <defunct>
   9092  161819 elder    Z    [opera_autoupdat] <defunct>
   9092  163040 elder    Z    [opera_autoupdat] <defunct>
   9092  172181 elder    Z    [opera_autoupdat] <defunct>
   9092  195726 elder    Z    [opera_autoupdat] <defunct>
   9092  207678 elder    Z    [opera_autoupdat] <defunct>
   9092  218235 elder    Z    [opera_autoupdat] <defunct>

Acima podemos ver que muitos processos zumbis e trata-se do navegador opera.

Também podemos ver que a primeira coluna é o id do processo pai. A segunda coluna é o id do processo zumbi.

Veja que o processo pai tem o id 9092

Matando o Processo Zumbi

Um processo zumbi já está morto e então não podemos matar o que já está morto 🙂

A única solução é matar o pai.

Podemos executar o comando “kill -9 9092” no caso acima. Lembre-se de usar sudo caso o processo zumbi não pertença ao seu usuário.

elder@server01:~$  kill -9 9092

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *