Nous avons deux serveurs Windows , l'un en 2012 R2 et l'autre en 2008 R2 qui utilise Apache HTTP Server ( httpd
) 2.4 en mode proxy / proxy inverse (utilisation de ProxyPass
, ProxyPassReverse
et configuration des hôtes virtuels). Les deux serveurs utilisent la version binaire Apache 2.4.27 x64 d'Apache Haus.
Nous avons des scripts de sauvegarde en cours d'exécution sur les deux serveurs. Ils arrêtent tous les services (y compris Apache) puis effectuent la sauvegarde et redémarrent tous les services à nouveau.
Ces scripts fonctionnent bien depuis plusieurs années (près de 4 ans). Mais à partir de là July 12, 2018
, le comportement est maintenant étrange. Les scripts de sauvegarde font leur travail, arrêtent tous les services, effectuent la sauvegarde mais maintenant, tous les services sont redémarrés sauf Apache.
Après enquête, j'ai constaté que le service Apache 2.4.27 ne pouvait pas être arrêté. Lorsque vous utilisez la console Services et essayez d'arrêter manuellement le service, la console affiche «Arrêt» et rien ne se produit.
J'ai donc vérifié les processus en cours d'exécution et j'ai vu qu'un httpd.exe
processus était en cours d'exécution. J'ai essayé de tuer ce processus mais sans succès.
J'ai donc essayé:
taskkill /im "httpd.exe" /f /t
Et la sortie est:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
J'ai donc testé pour tuer le processus avec pskill
de Sysinternals:
pskill -t 560
Et la sortie est:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Mais c'est faux, car le httpd
processus est toujours en cours!
J'ai donc mis à jour Apache de 2.4.27 à 2.4.34, mais le problème persiste. La seule chose à faire pour débloquer la situation est de redémarrer l'ensemble du serveur.
J'ai vérifié les mises à jour installées, et certaines d'entre elles ont été installées le July 11, 2018
jour précédent:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Je suppose donc que le problème provient d'une de ces mises à jour. Donc, avant de les désinstaller tous, y a-t-il quelqu'un qui a le même problème que moi, je veux dire qu'Apache 2.4 devient impossible à tuer et ne peut pas être arrêté sur Windows Server?
Le gros problème est que si ce httpd
processus ne peut pas être tué, Apache ne peut pas être redémarré car le port 80 est déjà lié.