Eu tenho um servidor com uma tonelada de processos zumbis. Quase mil. Se possível, gostaria de colher esses processos porque não parece que o pai (um pai está causando todos os 1.000 zumbis) vai chamar a função de espera. Vejo que o bash tem uma função de espera integrada, mas quando a uso para tentar colher um dos zumbis, recebo o seguinte erro.
# wait 17517
bash: wait: pid 17517 is not a child of this shell
Eu sou root, mas isso não parece fazer diferença. tenho algumas perguntas
- Posso colher um processo zumbi se não for filho do meu shell?
- Se não, há algo que eu possa fazer? Não tenho certeza se devo matar o pai
- Eu deveria estar preocupado? Parece que o pai tem um vazamento de recursos e não está coletando lixo ou qualquer outra coisa.
Não, você não pode.
Você pode tentar parar o pai e reiniciá-lo a
exec
partir de um shell que ignoraSIGCHLD
. Um pai que ignoraSIGCHLD
não deixará zumbis.Se o número de zumbis aumentar, eventualmente você chegará ao ponto em que não poderá bifurcar novos processos.