Existe algum impacto de colher processos zumbis?

2

Vou executar o seguinte comando para colher zumbis

 /usr/bin/preap $(ps -ef | grep defunct | grep -v grep | awk '{ print $2 }' | xargs)

Existe algum impacto de serviço desta abordagem?

    
por mibzer 05.11.2012 / 11:32

2 respostas

4

Se você colher um zumbi antes de seu pai, você perderá o efeito que a colheita teria no pai. Isto é obviamente dependente da aplicação.

Há muito pouca razão para ativamente ir e colher zumbis. Alguns sistemas operacionais não permitem que você faça isso, além de executar manualmente o processo pai e fazer com que ele execute uma chamada de sistema waitpid . O Solaris oferece um utilitário preap , mas o único caso em que você deve usá-lo é quando um programa está se comportando mal e preenche a tabela de processos com zumbis.

    
por 06.11.2012 / 01:13
3

Seu script pode colher os zumbis muito cedo, evitando que os pais os colham e causando comportamento inesperado com eles.

Assumindo que você não tem como consertar a causa raiz da existência desses processos zumbis, eu apenas colheria aqueles que estiveram no estado defunto por um período de tempo suficientemente longo (por exemplo, 1 minuto) para evitar ignorar a colheita legítima:

for pid in $(ps -eo pid,s | nawk '$2 == "Z" {print $1 };sleep 60)
do
  preap $pid
done

A propósito, | xargs é inútil em seu script, pois uma nova linha é um separador de argumento válido.

    
por 05.11.2012 / 11:44