この記事を読むのに必要な時間は約 8 分です。
この[warn] pid file・・・なんちゃらかんちゃら・・・overwritten
ずっと以前から気になってはいたのですが、
不具合というほどの不具合はなかったので、 放置していました。
今日、解決しましたので備忘録として。
下のerror.logにもあるように、
「c:apache2.2logsに前回起動した際のpidファイルが残っているので
「http.pid」ファイルを上書きしてapacheを起動しますよ。」
という意味の英語のエラーメッセージが、サーバーを立ててからapacheの起動時に繰り返し残っていました。
前から1416という数字がこのファイル内にあったのですが、
「これは何かのカウントかも?消してはダメなもの」
と思っていました。
調べたところ、UNIX系サーバーでは、apache停止時に削除されるものだということがわかりました。
放っておいても問題があるわけではないのですが、なんか気になるので、サーバーをバックアップ後、pidファイルをファイルごと削除してみました。
すると下の2回目のrestartのログからもわかるように上記のエラーが消えていました。
ずっと前から[warn] なのはおかしいな?と思っていたのですが、特に不具合もなく放置していました。
ちなみにこの「http.pid」ファイル、restartで復活します。
Apacheのログをきちんとよく読むことは大切だと思い知った1日でした。
【後日追記】
ググってみると、この問題、apache2.2をwinサービスとして登録している場合、
「前回起動した際のpidファイルが削除されない為、起きる」
という既知の不具合らしいことが判明しました。
通常、pidファイルはapache停止時に削除され、残ったままだと再起動しない、いわゆる二重起動防止のためにあるものらしいのですが、win系サーバーの場合、削除されず、また、残っていても上書きで再起動するため、問題ないということです。win系以外は起動を妨げる場合があるとのこと。
なので、このエラーはwinサーバーでは「放置」で問題ないようです。
※もしも他に情報がありましたら教えて下さい。
[Sat Dec 03 16:48:14 2011] [warn] pid file C:/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? [Sat Dec 03 16:48:18 2011] [notice] Apache/2.2.21 (Win32) PHP/5.2.9 mod_ssl/2.2.21 OpenSSL/0.9.8r configured -- resuming normal operations [Sat Dec 03 16:48:18 2011] [notice] Server built: Sep 9 2011 10:26:10 [Sat Dec 03 16:48:18 2011] [notice] Parent: Created child process 352 [Sat Dec 03 16:48:25 2011] [notice] Disabled use of AcceptEx() WinSock2 API [Sat Dec 03 16:48:30 2011] [notice] Child 352: Child process is running [Sat Dec 03 16:48:30 2011] [notice] Child 352: Acquired the start mutex. [Sat Dec 03 16:48:30 2011] [notice] Child 352: Starting 250 worker threads. [Sat Dec 03 16:48:30 2011] [notice] Child 352: Listening on port 443. [Sat Dec 03 16:48:30 2011] [notice] Child 352: Listening on port 80. <!--pidファイルを削除後、再起動--> The Apache2.2 service is restarting. The Apache2.2 service has restarted. arent: Received restart signal -- Restarting the server. [Sat Dec 03 17:22:55 2011] [notice] Child 3884: Exit event signaled. Child process is ending. [Sat Dec 03 17:22:56 2011] [notice] Child 3884: Released the start mutex [Sat Dec 03 17:22:59 2011] [notice] Apache/2.2.21 (Win32) PHP/5.2.9 mod_ssl/2.2.21 OpenSSL/0.9.8r configured -- resuming normal operations [Sat Dec 03 17:22:59 2011] [notice] Server built: Sep 9 2011 10:26:10 [Sat Dec 03 17:22:59 2011] [notice] Parent: Created child process 2436 [Sat Dec 03 17:23:00 2011] [notice] Disabled use of AcceptEx() WinSock2 API [Sat Dec 03 17:23:05 2011] [notice] Child 3884: All worker threads have exited. [Sat Dec 03 17:23:06 2011] [notice] Child 2436: Child process is running [Sat Dec 03 17:23:06 2011] [notice] Child 2436: Acquired the start mutex. [Sat Dec 03 17:23:06 2011] [notice] Child 2436: Starting 250 worker threads. [Sat Dec 03 17:23:07 2011] [notice] Child 2436: Listening on port 443. [Sat Dec 03 17:23:07 2011] [notice] Child 2436: Listening on port 80. [Sat Dec 03 17:23:10 2011] [notice] Child 3884: Child process is exiting
※後日、2008R2にApache2.4を入れて運用していますが、このエラーは一度も出ていません。2.2系のみに見られるエラーなのかも知れません。