Apache の負荷が高いときに Apache を service httpd restart として再起動すると、まれに次のようなエラーメッセージを表示して Apache を再起動できないときがある。
[Mon Feb 09 17:54:50 2009] [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed
えっ、ハードディスクの空き容量がなくなったと勘違いしそうなエラーメッセージだけれど、これは Apache がセマフォを使いきっているために起こる現象。サーバを再起動すればすぐになおすことができるが、そうそうサーバを再起動できないので、次のコマンドで Apache ユーザが使用しているリソース一覧を表示して確認する。
$ sudo ipcs -s | grep apache
0×00000000 7831552 apache 600 1
(略)
Apache が起動していないのに、Apache ユーザが使用しているリソースがあるのはおかしいので、次のコマンドでリソースを解放する。
$ sudo ipcs -s | grep apache | awk ‘{print “sudo ipcrm -s “,$2}’ | sh
これで、ちゃんと Apache を起動することができる。
Tags: apache






