Linuxメモ coreファイルの出力設定

coreファイルとは何か

Linuxをいじる機会があったので、今回はRed Hat系Linuxのcoreファイルの出力設定についてまとめます。
なお、エントリの環境はRed Hat Linux (5.2)になります。

スポンサーリンク


まず、coreファイルの定義を、IT用語辞典から引用します。

ちなみに、このファイルが出力されたときに、「デーモンがCrashしてCoreを吐いた」という表現を使うことを耳にします。

 

プログラムが処理を継続できないようなエラーなどで強制終了したときに出力されるファイル。直前のメモリやレジスタの内容を「core」という名前のファイルに出力するようにできている。coreファイルをデバッガに読み込ませれば、エラーが発生した場所や、そのときの変数の値などがわかり、原因の特定を進めやすくなる。~IT用語辞典より引用~

 

coreファイルの出力方法

さて、エラーの解析に役立つcoreファイルですが、Linuxの初期設定のままではこいつを出力させることはできません。

 

そこで、ulimitというコマンドを使って出力設定を行います。(コマンドの詳細はリンク先を参照下さい)

 

ulimit -c を叩いて0が表示される場合はcoreファイルが作成できないので、以下のように入力して設定を変更します。

 

% ulimit -c
0      ★core file sizeが0(coreファイルは出力されない)
% ulimit -c unlimited
★core file sizeをunlimitedに設定
% ulimit -c
unlimited  ★core file sizeが無制限(coreファイルは出力される)

 

自動出力設定

ここまででcoreファイルの出力がされる設定になりましたが、このままだとターミナルを切ったりログアウトした場合に設定が無効になってしまいます。

 

そのため、.bashrcや.bash_profileなどの自動読み込みファイルに、ulimit -c unlimitedと書いておきましょう。こうすることによって、ログイン時にcoreファイルが出力される設定がされます。

 

ちなみに、自分は/etc/profileに書きました。(.bashrcと.bash_profileがないユーザもいたので。/etc/profile に書き込めば全ユーザ問答無用で読み込んでくれました。)

 

 まとめ

  1. ulimit -c unlimited を叩く
  2. .bashrcや.bash_profileに1.のコマンドを書いておく

 

スポンサーリンク