Temos dois Windows Server , um em 2012 R2 e outro em 2008 R2 que usa Apache HTTP Server ( httpd
) 2.4 no proxy / modo reverso-proxy (uso de ProxyPass
, ProxyPassReverse
e Hosts virtuais configuração). Ambos os servidores usam a construção binária Apache 2.4.27 x64 da Apache Haus.
Temos alguns scripts de backup em execução nos dois servidores. Eles param todos os serviços (incluindo o Apache), fazem o backup e reiniciam todos os serviços novamente.
Esses scripts estão funcionando bem há vários anos (quase 4 anos). Mas a partir de agora July 12, 2018
, o comportamento agora é estranho. Os scripts de backup estão realizando seus trabalhos, interrompendo todos os serviços, fazendo o backup, mas agora todos os serviços são reiniciados, exceto o Apache.
Após investigar, descobri que o serviço Apache 2.4.27 não pode ser parado. Ao usar o console de Serviços e tentar parar manualmente o serviço, o console mostra "Parando" e nada acontece.
Então, verifiquei os processos em execução e vi que um httpd.exe
processo está em execução. Eu tentei matar esse processo, mas sem sorte.
Então, eu tentei:
taskkill /im "httpd.exe" /f /t
E a saída é:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Então eu testei para matar o processo pskill
da Sysinternals:
pskill -t 560
E a saída é:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Mas isso é falso, pois o httpd
processo está sempre em execução!
Atualizei o Apache de 2.4.27 para 2.4.34, mas o problema permanece. A única coisa a fazer para desbloquear a situação é reiniciar o servidor inteiro.
Eu verifiquei as atualizações instaladas e algumas delas foram instaladas no July 11, 2018
dia anterior:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Portanto, presumo que o problema seja de uma dessas atualizações. Portanto, antes de desinstalar todos eles, existe alguém que tenha o mesmo problema que eu, quero dizer que o Apache 2.4 se torna impenetrável e não pode ser parado no Windows Server?
O grande problema é que, se esse httpd
processo não pode ser morto, o Apache não pode ser reiniciado, pois a porta 80 já está ligada.