У нас есть два Windows Server , один в 2012 R2 , а другой в 2008 R2 , который использует Apache HTTP Server ( httpd
) 2,4 в прокси / обратного прокси - режим (использование ProxyPass
, ProxyPassReverse
и виртуальные хосты конфигурации). Оба сервера используют двоичную сборку Apache 2.4.27 x64 от Apache Haus.
У нас есть несколько скриптов резервного копирования, работающих на обоих серверах. Они останавливают все службы (включая Apache), затем выполняют резервное копирование и снова запускают все службы.
Эти скрипты работают нормально уже несколько лет (почти 4 года). Но, начиная с July 12, 2018
поведения, теперь это странно. Сценарии резервного копирования выполняют свою работу, останавливают все службы, выполняют резервное копирование, но теперь все службы перезапускаются, кроме Apache.
После исследования я обнаружил, что служба Apache 2.4.27 не может быть остановлена. При использовании консоли служб и попытке вручную остановить службу на консоли отображается сообщение «Остановка», и ничего не происходит.
Итак, я проверил запущенные процессы и увидел, что httpd.exe
процесс запущен. Я пытался убить этот процесс, но безуспешно.
Итак, я попробовал:
taskkill /im "httpd.exe" /f /t
И вывод:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Итак, я проверил, чтобы убить процесс с pskill
Sysinternals:
pskill -t 560
И вывод:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Но это неверно, так как httpd
процесс всегда запущен!
Итак, я обновил Apache с 2.4.27 до 2.4.34, но проблема остается. Единственное, что нужно сделать, чтобы разблокировать ситуацию, это перезагрузить весь сервер.
Я проверил установленные обновления, и некоторые из них были установлены July 11, 2018
так за день до этого:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Поэтому я предполагаю, что проблема в одном из этих обновлений. Итак, прежде чем удалить все из них, есть ли кто-то, кто имеет ту же проблему, что и я, я имею в виду, что Apache 2.4 становится неубиваемым и не может быть остановлен на Windows Server?
Большая проблема в том, что если этот httpd
процесс не может быть убит, Apache не может быть перезапущен, так как порт 80 уже связан.