Processo de zumbi. Nem todo mundo já ouviu falar dessa palavra interessante, porém assustadora, relacionada ao sistema operacional Linux. Em um computador pessoal, os processos zumbis podem não ser uma ameaça para um usuário comum, mas quando se trata de servidores Linux, esses processos devem ser identificados e interrompidos.

Esses processos podem causar problemas com a tabela de processos do seu sistema e, por sua vez, interferir no funcionamento adequado da sua máquina. Portanto, neste artigo, discutiremos os processos zumbis em detalhes, junto com um guia abrangente sobre como encontrar e matar processos zumbis em uma máquina Linux.

O que são processos zumbis?

Mas antes de tudo isso, é importante que você saiba o que realmente são os processos zumbis. Eles nada mais são do que processos mortos e extintos que ocupam espaço na tabela de processos do sistema. UMA bloco de controle de processo ou PCB é uma estrutura de dados que armazena detalhes associados a processos individuais em execução em seu sistema.

instagram viewer

A tabela de processos consiste no ID do processo, um link para o PCB e outras informações úteis relacionadas ao processo. Os processos zumbis têm seus próprios IDs de processo e informações de gerenciamento de memória. Como o sistema operacional Linux tem um número limitado de IDs de processo disponíveis, outros processos não podem usar os PIDs até que o processo zumbi pare.

Embora um ou dois processos zumbis não causem nenhuma interrupção ou problemas de desempenho em seu computador, um grande número de tais processos pode prejudicar o fluxo de trabalho do seu sistema inundando a tabela de processos e o Recursos.

O que causa os processos zumbis no Linux?

Para entender a causa subjacente de um processo zumbi em detalhes, você terá que aprender como os processos iniciam e param no Linux. O sistema operacional Linux monitora todos os processos e daemons em execução em um computador. O mesa de processo é uma lista de estruturas que contém todos os processos que estão atualmente em execução em sua máquina.

Cada entrada de processo na tabela de processos consiste em um link para o bloco de controle de processo desse processo específico. O PCB armazena os detalhes associados a esse processo específico. Esses detalhes incluem:

  1. Estado do processo: O estado atual do processo
  2. Número do processo: Um número único usado para identificar o processo
  3. Contador de programa: Contém informações relacionadas à próxima instrução
  4. Registros: Lista de todos os registros da CPU usados ​​pelo processo
  5. Abrir lista de arquivos: Arquivos usados ​​pelo processo
  6. Informações de programação da CPU: Contém informações associadas ao tempo de CPU e recursos alocados para o processo
  7. Informação de gerenciamento de memória: Inclui detalhes sobre a quantidade de memória usada pelo processo
  8. Informação I / O: Lista de dispositivos de entrada ou saída utilizados pelo processo

O Linux usa os seguintes estados de processo para descrever todos os seus processos.

  • R: Processo de execução
  • S: Processo de dormir
  • D: Processo ininterrupto de sono
  • T: Processo encerrado
  • Z: Processo de zumbi

Sempre que um processo conclui a tarefa atribuída, seu estado de processo é definido como Zumbi ou Z. Cada processo tem um processo pai que chama uma família de funções chamada esperar() que aguarda a mudança de estado de um processo. Por exemplo, se o estado do processo muda de Corrida para Zumbi, a esperar() método será acionado.

O esperar() O método geralmente exclui o bloco de controle do processo relacionado a esse processo zumbi e, em seguida, remove a entrada desse processo da tabela de processos.

Mas às vezes, devido ao fraco desenvolvimento de um programa, o processo pai não chama o esperar() função. E, como resultado, o sistema não exclui o PCB do processo zumbi. A entrada da tabela de processos para esse processo específico também permanece intacta.

Isso concede ao processo zumbi uma vida útil infinita. Como o sistema não pode encerrar o processo, a entrada do processo nunca é excluída e o PID nunca é liberado.

Saber mais: Maneiras de eliminar programas que não respondem no Linux

Como encontrar processos zumbis?

A primeira etapa para remover processos zumbis em seu sistema é analisar qual processo tem o Zumbi estado do processo. Embora não seja possível eliminar esses processos diretamente, pois o sistema já os removeu da memória, você pode eliminar o processo pai associado a eles.

Primeiro, você precisa verificar se a tabela de processos do seu sistema possui um processo zumbi. Você pode fazer isso facilmente usando o principal comando. Basta abrir seu terminal e digitar:

principal

Você verá uma saída semelhante a esta. Observe a contagem de processos zumbis na parte superior da janela do terminal. Se a saída for zero, não há nada com que se preocupar.

Você pode listar informações relacionadas a esses processos zumbis canalizando o comando ps com egrep. Egrep é uma extensão do comando grep no Linux que trata todos os padrões como uma string regex estendida.

Relacionado: O guia do iniciante para expressões regulares com Python

Digite o seguinte comando para listar todos os processos zumbis:

ps aux | egrep "Z | extinto"

O comando mencionado irá procurar por linhas que contenham qualquer Z ou extinto na saída gerada pelo comando ps. A saída consiste em uma lista dos processos zumbis em execução no seu sistema.

Processos de matar zumbis usando o comando kill

Agora que você sabe quais processos zumbis estão consumindo os recursos do seu sistema, é hora de encerrar esses processos.

Embora a maneira mais fácil de matar processos zumbis seja reiniciando o computador, às vezes essa não é uma opção viável, especialmente se você estiver administrando um servidor.

Para matar processos zumbis sem desligar o servidor, anote o ID do processo de qualquer processo zumbi. Na seção anterior, podemos ver que o PID do processo zumbi era 18614. Então, use este PID para encontrar o ID do processo pai.

ps -o ppid = -p 18614

Resultado:

18613

Verifique se o ID do processo pai existe usando o ps comando.

ps -e | grep 18613

Agora que confirmamos a existência do processo pai, é hora de eliminá-lo. Passe o -SIGKILL bandeira com o mate comando da seguinte forma:

sudo kill -SIGKILL 18613

Depois de matar o processo pai, o sistema excluirá o processo zumbi e o removerá da tabela de processos automaticamente.

Gerenciando processos com eficiência no Linux

Cada administrador de sistema deve priorizar os processos de monitoramento em execução em uma máquina Linux. Embora os processos zumbis não sejam necessariamente prejudiciais ao sistema, eles podem causar problemas de desempenho se existirem em grande número.

Se você é um usuário Linux iniciante e não tem ideia de como o sistema operacional Linux gerencia processos, aprender o que são processos primeiro é um bom lugar para começar.

E-mail
O que é um processo no Linux?

Compreender o processo e as tarefas é um aspecto fundamental para se familiarizar com o Linux. Aqui está o que você precisa saber.

Leia a seguir

Tópicos relacionados
  • Linux
  • Linux
  • Em processamento
Sobre o autor
Deepesh Sharma (45 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve conteúdo informativo na internet há mais de 3 anos. Em seu tempo livre, ele gosta de escrever, ouvir música e tocar seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.

.