Apache 2.4は殺せないため、Windows Serverで停止できません


11

我々は2つ持っているWindows Serverの、1つの2012 R2およびその他2008 R2使用してApache HTTPサーバhttpd2.4をプロキシ/リバースプロキシモード(の使用でProxyPassProxyPassReverseかつ仮想ホストの構成)。両方のサーバーは、Apache HausからのApache 2.4.27 x64バイナリビルドを使用します。

両方のサーバーでいくつかのバックアップスクリプトが実行されています。すべてのサービス(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, 20181日前にインストールされました。

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

したがって、問題はこれらのアップデートのいずれかによるものと推測します。すべてをアンインストールする前に、私と同じ問題を抱えている人がいますか?Apache 2.4は殺せなくなり、Windows Serverで停止できませんか?

大きな問題は、そのhttpdプロセスを強制終了できない場合、ポート80が既にバインドされているため、Apacheを再起動できないことです。


3
タイトルは映画モンスターのように聞こえます
。– Trotski94

回答:


10

OK、だから私は正しい軌道に乗っていたと思う。

最近インストールされた更新プログラムについてWebで検索した後、KB4338818が問題の原因となっています。

これは、FileZilla Serverなどの他のソフトウェアで発生します(詳細はこちら)

このセキュリティ更新プログラムをアンインストールしたところ、通常どおりApacheを起動/停止できます!

したがって、Microsoftがこれを後のアップデートで修正することを願っています!


あなたの答えを見つけましたが、サーバーの再起動でも問題が解決するかどうか疑問に思っていましたか?さらに、Apacheが実行されていない間にアップデートが適用された場合、問題が発生していない可能性があります。
MonkeyZeus

はい、元の質問で既に説明したように、状況をブロック解除する唯一の解決策は、サーバー全体を再起動することです...これは汚い回避策です!
SiZiOUS

申し訳ありませんが、私はその詳細を逃しました、それは少し埋められました。再起動後、プロセスは強制終了できませんでしたか?ローカルマシンでApacheを使用してWindows 7 x64を実行しているが、KB4338818をまだ受け取っていないので、何を期待するのかを知りたいので、私はちょうど尋ねています。
モンキーゼウス

1
問題ありません、コメントを正当化する必要はありません。:)再起動後、Apacheが自動的に起動するように設定した場合、動作します。ただし、(手動またはスクリプトを使用して)サービスを停止しようhttpdとすると、プロセスがフリーズし、殺すことができなくなります。
SiZiOUS



1

KB4338831は、Windows Server 2012 R2の問題を修正するようです。

このセキュリティ以外の更新プログラムには、KB4338815(2018年7月10日リリース)の一部であった改善と修正が含まれ、次の月例ロールアップ更新のプレビューとしてこれらの新しい品質改善も含まれています。出典:2018年7月18日-KB4338831(マンスリーロールアップのプレビュー)

Windows Updateの推奨アップデートとして入手できます。


0

あなたは間違いなく正しい軌道に乗っていると思います。Windows Server上のTomcatでも同様の問題が発生していました。ただし、Tomcatを搭載した別のサーバーで問題が発生していませんでしたが、主な違いは、稼働しているサーバーにもIISがインストールされ、他のポートで実行されていたことです。回避策として、デフォルトのWebサイトを設定する問題サーバーにIISをロードして、標準以外のポートを使用し、更新プログラムをアンインストールせずに問題が解消されたようにしました。


1
OK ...私はそれを取り戻します... IISのトリックは、時々しか機能しないようです。ポート80はIISのロードで修正されたようですが、443は一部の場合にしか機能しません。また、私にとって問題の更新はKB4338815のようです。少なくとも私の運用サーバーでは、これが実行されている唯一のものであるため、Tomcatを再起動するのと同じくらい簡単に再起動できます。
ドンプレツィオーゾ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.