LinuxでApacheの子プロセスがセグメントフォルトした原因を知る方法を教えてください。


デバッガは使用できないな環境なので、ダンプファイルの場所やその見方等々を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/08/17 19:37:38
  • 終了:--

回答(1件)

id:aprl No.1

aprl回答回数25ベストアンサー獲得回数02005/08/18 02:59:36

ポイント40pt

http://httpd.apache.org/docs/2.0/ja/mod/mpm_common.html

mpm_common - Apache HTTP ������

Apache 2.0に関する質問と仮定します。


EnableExceptionHookディレクティブを

有効にして,再コンパイルする必要があ

ります(多くのディトリビュータが配布す

るバイナリでは,このディレクティブは

有効になっていないようです)。


これにより,子プロセスがSIGSEGV等で

落ちたときに,ログファイル(コンパイル

時に何も指定しなければ,/var/logs/

の下に,httpdやapacheというディレクト

リがあり,その下のerror_logという名前

であるのが普通),どの子プロセスが異常

終了したか,が書き込まれます。


さらにその終了の要因をしるのに,

デバッカを使わない場合に,

上記URLマニュアルの説明から辿れる

モジュールを予め組み込んでおくのが

遠くて近い早道かと存じます。

id:anom

ありがとうございます。

大変参考になりました。

ただリコンパイルはかなり難しい状況です。

2005/08/24 19:18:02
  • id:aprl
    たぶん解決できていると思いますが,補足。

    リコンパイルができない(ソースコードが入手できない)
    バイナリ場合は,

    ・CoreDumpDirectory ディレクティブで明示的に指定して,
     コアファイルをはかせることができるか
    ・killコマンドを使って,どのシグナルでコアをはくか
     試験する

    というあたりから,地道に確認しておこなうしかなさそう
    ですね。指定方法はhttp.confをみてください。書き込み
    権限があるディレクトリを指定しないと駄目ですが。

    ログファイルの位置も,httpd.confをみて確認できるはず
    ですから。回答ではそのあたり,リコンパイルとパッケージ
    の場合とをごちゃに書いて,ちょっと誤解を招くかなと
    反省。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません