[FrontPage] | 更新履歴 - サイトマップ - "FastCgiIpcDir" 配下のコンテンツ - 過去を発掘 | [Snap.Shot] |
FastCgiIpcDir |
仕様頻度のあまり高くないサーバでもって、しばらく放っておくと、ソケットファイルが無くなってエライことになっちょることがある。ログファイルを見ると、大量のFastCGIエラーログ。
「どうしてこうなっちまうんだ?」と、ずっと首をかしげていたのだが、最近気がついた。犯人はtmpwatch。
通常、FastCGIの動的サーバを上げると、/var/tmp/fcgi/dynamic以下に通信用ソケットファイルが「動的に」作成される。しかし/var/tmp以下って、多くのUNIXライクなOSではtmpwatchの回収対象となってしまっている。 tmpwatchというやつは、使われていないと思われるテンポラリファイルを消してくれるコマンドラインツールで、だいたい一日一回cron経由で起動されていたりする。
で、こいつに引っかかって使われていないsocket fileが削除されてしまい、プロセス間通信が出来なくなってしまう、という仕掛けらしい。
つまり、↑みたいな状況に遭遇したら、FastCgiIpcDirをちゃんと設定して、tmpwatchの回収対象にならないよう注意する必要がある。 まぁこれは任意なんだけど、/var/fcgiあたりがよいのでは? ディレクトリオーナはWWWサーバの実行ユーザにしてね。