Abbiamo due Windows Server , uno in 2012 R2 e l'altro in 2008 R2 che utilizza Apache HTTP Server ( httpd
) 2.4 in proxy / modalità reverse proxy (uso di ProxyPass
, ProxyPassReverse
e host virtuali configurazione). Entrambi i server utilizzano Apache 2.4.27 x64 build binaria di Apache Haus.
Abbiamo alcuni script di backup in esecuzione su entrambi i server. Arrestano tutti i servizi (incluso Apache), quindi eseguono il backup e riavviano nuovamente tutti i servizi.
Questi script funzionano bene da diversi anni (quasi 4 anni). Ma a partire da July 12, 2018
ora il comportamento è strano. Gli script di backup stanno facendo il loro lavoro, arrestando tutti i servizi, eseguendo il backup ma ora tutti i servizi vengono riavviati tranne Apache.
Dopo aver esaminato, ho scoperto che il servizio Apache 2.4.27 non può essere arrestato. Quando si utilizza la console dei servizi e si tenta di arrestare manualmente il servizio, la console mostra "Arresto" e non accade nulla.
Quindi ho controllato i processi in esecuzione e ho visto che un httpd.exe
processo è in esecuzione. Ho provato ad uccidere quel processo ma senza fortuna.
Quindi, ho provato:
taskkill /im "httpd.exe" /f /t
E l'output è:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Quindi ho provato ad interrompere il processo con pskill
da Sysinternals:
pskill -t 560
E l'output è:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Ma questo è falso, poiché il httpd
processo è sempre in esecuzione!
Quindi ho aggiornato Apache dalla 2.4.27 alla 2.4.34, ma il problema rimane. L'unica cosa da fare per sbloccare la situazione è riavviare l'intero server.
Ho controllato gli aggiornamenti installati e alcuni di essi sono stati installati il July 11, 2018
giorno prima:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Quindi presumo che il problema provenga da uno di questi aggiornamenti. Quindi, prima di disinstallarli tutti, c'è qualcuno che ha lo stesso problema, intendo Apache 2.4 che diventa invendibile e non può essere fermato su Windows Server?
Il grosso problema è che se questo httpd
processo non può essere interrotto, Apache non può essere riavviato poiché la porta 80 è già associata.