プロが教えるわが家の防犯対策術!

毎度、お世話になります。

Linuxサーバー内の/var/log/messagesを覗いたら、以下の様なメッセージが出てました。
Apache(httpd)関係の起動トラブルだと思うのですが、一体どのような意味なのでしょうか?
また、このエラーの対処法をご教授ください。
おねがいします。


/var/log/messages

httpd: Ouch! ap_mm_create(1048576, "/var/run/httpd.mm.31254") failed
httpd: Error: MM: mm:core: failed to open semaphore file (Permission denied): OS: No such file or directory


使用OS:Redhat Linux7.1J

A 回答 (2件)

セマフォが開けないというエラーのようですので、カーネルパラメータの変更で回避出来るかもしれません。



まず、
# ipcs -s
で、セマフォの使用状況を確認してください。

そして、
# sysctl kernel.sem
で、セマフォの設定内容を確認してください。
表示される内容は「SEMMSL SEMNS SEMOPM SEMMNI」の値です。

変更方法は、/etc/sysctl.confに
kernel.sem = 250 32000 100 128
という感じで、1行追加して
# sysctl -p
で設定内容が適用されます。

カーネルパラメータだけの問題ではないような気がしますが・・・。
Apacheのバージョンはいくつでしょうか?
    • good
    • 0

全然自信ないです。

特に Linux わからないので参考までに。。。

上記エラーは、恐らく Apache に DSO 乃至は組み込みで mm (Shared Memory Library) が入ってると思うのですが、mm で割り当てされたメモリスペースを全て使い果たしたために出るようです。
(Linux の一部と、Solaris の一部で出るそうですが…)

で、mm で使用する SHMMAX の設定を調節すれば出ないと思われます。
ipcs コマンドでセマフォ設定のリストが見られれば、その数値よりちょっとあげる設定にしてみてください。
(設定がどのファイルに書かれているのかは、Linux 疎い私にはわからないです。)

または、/etc/fstab に

none /var/shm shm 0 0

を追加してみてください。

あと、多分、mm のバージョンは古いと思うんですが、現行版に入れ替えたら、もしかしたらその点のバグが fix されてるかもしれません。
(参考 URL のサイトから落とせます)

あと mm の設定がどうなってるかわかりませんが、mm で作られたセマフォファイルが、メモリリークしてる可能性もあります (これは全然自信なし)
しょっちゅう出るエラーじゃなければ、Apache をむやみに長期間起動させているのも原因の一つかもしれません。
なので定期的に httpd を kill -HUP や kill -USR1 していればある程度このエラーは抑制できるかも知れません。

ついでに kill -HUP や kill -USR1 の時に、既に mm がコケている可能性もありますので、シグナル送った直後に Apache のエラーログを見てみてください。(別 tty で tail -f して待ち受けたほうがいいかも)

恐らく、そちらのほうが詳しい原因が書かれているように思います。

参考URL:http://www.ossp.org/pkg/lib/mm/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!