我们有两个
Windows Server,一个在2012 R2中,另一个在2008 R2中,它在代理/反向代理模式下使用Apache HTTP Server(httpd)2.4(使用ProxyPass,ProxyPassReverse和虚拟主机配置).两台服务器都使用Apache Haus的Apache 2.4.27 x64二进制版本.
@H_404_1@我们在两台服务器上都运行了一些备份脚本.他们停止所有服务(包括Apache),然后进行备份并再次重启所有服务.
@H_404_1@几年(近4年),这些脚本运行良好.但从2018年7月12日开始,这种行为现在很奇怪.备份脚本正在执行其工作,停止所有服务,进行备份,但现在,除Apache之外,所有服务都重新启动.
@H_404_1@经过调查,我发现Apache 2.4.27服务无法停止.使用服务控制台并尝试手动停止服务时,控制台显示“正在停止”并且没有任何反应.
@H_404_1@所以我检查了正在运行的进程,发现httpd.exe进程正在运行.我试图杀死那个过程,但没有运气.
@H_404_1@所以,我尝试过:
> KB4338818
> KB4339093
> KB4338423 @H_404_1@所以我认为问题来自其中一个更新.所以在卸载所有这些之前,是否有人遇到与我相同的问题,我的意思是Apache 2.4变得无法攻击并且无法在Windows Server上停止? @H_404_1@最大的问题是,如果无法杀死httpd进程,则无法重新启动Apache,因为端口80已经绑定.
taskkill /im "httpd.exe" /f /t@H_404_1@输出是:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated. Reason: There is no running instance of the task.@H_404_1@所以我测试了用来自Sysinternals的pskill杀死进程:
pskill -t 560@H_404_1@输出是:
Copyright (C) 1999-2016 Mark Russinovich Sysinternals - www.sysinternals.com Process 5956 killed.@H_404_1@但这是错误的,因为httpd进程始终在运行! @H_404_1@所以我已经将Apache从2.4.27更新到2.4.34,但问题仍然存在.解除这种情况唯一要做的就是重启整个服务器. @H_404_1@我检查了已安装的更新,其中一些已安装在2018年7月11日所以前一天: @H_404_1@> KB4338420
> KB4338818
> KB4339093
> KB4338423 @H_404_1@所以我认为问题来自其中一个更新.所以在卸载所有这些之前,是否有人遇到与我相同的问题,我的意思是Apache 2.4变得无法攻击并且无法在Windows Server上停止? @H_404_1@最大的问题是,如果无法杀死httpd进程,则无法重新启动Apache,因为端口80已经绑定.