サーバ管理
coreadmコマンドを使用してcoreファイルの設定を色々変更することが出来ます。設定した内容は、設定ファイル/etc/coreadm.confに反映されます。
coreadmコマンドで設定する内容には以下のようなものがあります。
coreファイルの種類 | 説明 |
---|---|
global | システム全体(設定すればリブートしても消えない) |
glogal-setid | システム全体のsetuidプログラムのcore |
process | ユーザ単位 |
proc-setid | ユーザ単位のsetuidプログラムのcore |
log | syslogにも記載 |
coreadmコマンドで指定する主要なオプションには以下のようなものがあります。
オプション | 説明 |
---|---|
-d <config> | 設定を無効。configは、global,global-setid,process,proc-setid,logのいずれか |
-e <config> | 設定を有効。configは、global,global-setid,process,proc-setid,logのいずれか |
-g <pattern> | グローバル設定のファイルパターンを設定 |
-p <pattern> | ユーザ単位設定のファイルパターンを設定 |
-i <pattern> | initプロセスのcoreのファイルパターンを設定 |
coreファイル名を命名する際に使用できる主要なパラメータには以下のようなものがあります。
変数 | 展開される値 |
---|---|
%p | PID |
%u | UID |
%g | GID |
%f | プログラム名 |
%n | システム名 |
%m | マシン名 |
%t | タイムスタンプ |
以上を組み合わせて、設定してみます。いくつか設定例を記載します。
initプロセスcoreファイル設定。
# coreadm -i /var/core/init.%f.%p
グローバルcoreファイル設定。
# coreadm -e global -g /var/core/core.%f.%p // 有効 # coreadm // 確認 --- global core file pattern: /var/core/core.%f.%p global core dumps: enabled # coreadm -d global // 無効
ユーザ単位coreファイル設定。
# coreadm -e process // 有効 # coreadm // 確認 --- per-process core dumps: enabled % coreadm -p $HOME/core/core.%f.%p $$ // 各ユーザ設定 # coreadm -d process // 無効
setuid構成。
# coreadm -e global-setid -g /var/core/core.%f.%d
coreファイルに関するものをsyslogへ出力する設定。
# coreadm -e log // 有効 --- Sep 14 11:01:16 hoge genunix: [ID 603404 kern.notice] NOTICE: core_log: xxx
coreadmコマンドで設定してもcoreファイルが取得できない場合が有ります。その場合、リソース設定でcoreファイルを取得しない設定になってる可能性が有りますので確認してみて下さい。もし設定されている場合は、それを解除して下さい。
% limit coredumpsize 0 % limit coredumpsiz unlimited % limit cputime unlimited filesize unlimited datasize unlimited stacksize 8192 kbytes coredumpsize unlimited // 無制限 descriptors 256 memorysize unlimited