Eu tenho um servidor Windows 2008R2 executando o NSClient ++. Por alguma razão, o serviço alterou suas calcinhas e parou de responder às pesquisas do Nagios.
Quando tentei reiniciar o serviço, o gerente de serviço leva muito tempo para tentar matá-lo e, em seguida, desiste de uma mensagem parecida com "o serviço demorou muito para responder". Mas ... também inicia uma nova instância do serviço.
Se eu procurar no Gerenciador de tarefas ou tasklist
agora posso ver duas instâncias de nsclient++.exe
execução.
Eu tentei matar os dois usando:
clique direito e "Finalizar processo" no gerenciador de tarefas - finge interromper o processo e não reporta erros (por exemplo, Acesso negado), mas o processo ainda está lá.
taskkill /PID <proc id> /F
- relatórios,SUCCESS: The process with PID 6672 has been terminated.
mas o processo ainda está em execução.baixou o SysInternals PsTools e executou
pskill <PID>
- relatóriosProcess <PID> killed
- mas o processo ainda está lá.execute
at hh:mm pskill <PID>
parapskill
fazer isso como aSYSTEM
conta ... e você adivinhou que o processo ainda está em execução.
Todos os itens acima foram executados em um prompt de comando do administrador.
Além de uma reinicialização que não é realmente ideal (a caixa é um servidor de produção bastante crítico), o que mais posso tentar?
O servidor não está sob nenhuma pressão de recurso (memória, CPU, disco, etc.) e tudo o que está sendo executado está funcionando perfeitamente.
Uma rápida olhada na guia de threads no SysInternals Process Explorer mostra que todas essas nsclient++.exe
instâncias estão descarregando emperradas:
Além disso, eu também tentei matar todas as conexões TCP para esses processos zumbi (?) (Com TCPView) na esperança de poder iniciar uma nova instância e poder pegar a porta 5666. Em seguida, poderíamos reiniciar o servidor quando as coisas estão mais calmas, mas infelizmente isso não funcionou.
Stack
, como é a pilha dos threads presos?Respostas:
Mesmo que você já tenha percebido isso, o problema é que o processo está esperando no Kernel por alguma coisa. (Geralmente, esse é um problema no nível do driver, mas nem sempre.) A única maneira de eliminar esse processo é descarregar o kernel, o que, é claro, você não pode fazer sem reiniciar.
Pode valer a pena tentar alguma depuração do kernel ( essa ferramenta funciona no 2008 R2 ?) Na esperança de diminuir a causa ou o conflito específico, mas suas opções para lidar com o problema estão vivendo com ele ou reinicializando o servidor para eliminá-lo.
Existe uma razão para você não ter pensado em morar com ela? Se for apenas um processo zumbi e não estiver afetando nada, acho que você poderia adiar a reinicialização até uma janela de manutenção ou um momento mais oportuno. Normalmente, minha abordagem, quando o processo zumbi ou travado não está interferindo em nada - cuide dele durante o próximo ciclo de correção ou janela de manutenção agendada.
fonte