- - PR -
コアファイルが出力されない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-11-26 18:03
Redhat Linuxにおけるコアファイルを出力するルールを、
どなたかお教えいただけませんでしょうか。 自社開発したサーバプログラムがSegmentation faultで落ちる原因を 解析するために、コアファイルを取得しようとしておりますが、 サーバープログラムがSegmentation faultで落ちた時に、 Coreファイルが吐き出されません。 現状は以下の様になっております。 コアファイルを吐き出させるために、 /etc/profileに以下の記述変更を行いました。 ulimit -S -c unlimited > /dev/null 2>&1 そして、メモリアクセス違反が起こるようなプログラム(現在コアファイルを取得しようとしているプログラムとは別)を作成し、 プログラムを実行して、コアファイルが吐き出されることを 確認しました。 そして、上のサーバープログラムを再起動しました。 ちなみに、サーバープログラムは、クーロンでシェルスクリプトを起動して 再起動しました。 上のサーバープログラムを置いているロジカルボリュームは、 15Gほど空いております。 サーバプログラムがダウンしたときのシステムログのメッセージは以下でした segfault at 000000007c817083 rip 00000000f7eceb3b rsp 00000000f3b99e20 error 4 ☆環境 Redhat Linux ES 4 x86_64 [ メッセージ編集済み 編集者: H-Kino 編集日時 2007-11-26 18:03 ] |
|
投稿日時: 2007-11-27 14:57
解決いたしました。ご面倒をおかけいたしました。
クーロンで、コアファイルを取得したいサーバープロセスを再起動しておりましたが、 /etc/init.d/functionsに ulimit -S -c unlimited を記述し、crondデーモンを再起動したところ、 コアファイルを取得することができました。 クーロンでシェルスクリプトを実行する場合、 crondデーモンの設定がクーロンから呼び出したシェルに 引き継がれているということでしょうか。 |
|
投稿日時: 2007-11-27 19:12
そういうことになりますね。
というか、cronに限らず一般的に、子プロセスは親プロセスの リソース制限を引き継ぎます。 |
|
投稿日時: 2007-11-28 14:40
>というか、cronに限らず一般的に、子プロセスは親プロセスの
>リソース制限を引き継ぎます。 なるほど。そのようなポリシーがあるのですね。 勉強になりました。ありがとうございました。 |
1