Como posso obter um processo de zumbi que não é filho do meu shell?

1

Eu tenho um servidor com uma tonelada de processos zumbis. Quase mil. Se possível, eu gostaria de colher esses processos porque não parece que o pai (um dos pais está causando todos os 1000 zumbis) vai chamar a função de espera. Eu vejo o bash tem uma função de espera embutida, mas quando eu usá-lo 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 raiz, mas isso não parece fazer diferença. Eu tenho algumas perguntas

  1. Posso colher um processo de zumbi se não for o filho do meu shell?
  2. Se não, há algo que eu possa fazer? Não tenho certeza se devo matar o pai
  3. Eu deveria estar preocupado? Parece que o pai tem um vazamento de recursos e não é coleta de lixo ou qualquer outra coisa.
por Timothy Pulliam 28.08.2018 / 20:12

1 resposta

2
  1. Can I reap a zombie process if it is not the child of my shell?

Não, você não pode.

  1. If not, is there anything I can do? I am not certain I should kill the parent

Você pode tentar parar o pai e reiniciá-lo com exec de um shell que ignora SIGCHLD . Um pai que ignora SIGCHLD não deixa zumbis.

  1. Should I be worried? It seems the parent has a resource leak and is not garbage collecting or whatever.

Se o número de zumbis aumentar, você chegará ao ponto em que não conseguirá novos processos.

    
por 28.08.2018 / 23:57