プロセスのコアダンプの出力先の指定について
このドキュメント (00100037) の最後に記載の 免責条項 に基づき提供されています。
環境
SUSE Linux Enterprise 11
SUSE Linux Enterprise 12
概要
プロセスのコアダンプの出力先の指定方法について知りたい。
解決策
プロセスが異常終了した場合に出力するcoreファイルの出力先は、/proc/sys/kernel/core_pattern に設定可能です。
確認方法:
# cat /proc/sys/kernel/core_pattern
core
※デフォルトは、"core"が設定されています。この場合、プログラムが実行された作業ディレクトリにcoreが生成されます。
変更方法:
例)
# echo "/var/local/dumps/core.%e.%p"> /proc/sys/kernel/core_pattern
※core.%e.%pは、coreファイルが生成されたときの書式になります。%e: プロセス名 %p: PID
留意事項:
プログラムを実行する前に、以下のコマンドを実行します。
ulimit -c unlimited
また、/proc/sys/kernel/core_patternは、システムを再起動すると、デフォルトに戻りますので、再起動しても出力先をそのままにしたい場合は、以下を設定します。
例)
# vi /etc/sysctl.conf
:
kernel.core_pattern = /var/local/dumps/core.%e.%p
参考:
以下、実施例になります。ご参考ください。
# mkdir -p /var/local/dumps
# chmod 777 /var/local/dumps
# echo "/var/local/dumps/core.%e.%p"> /proc/sys/kernel/core_pattern
# su – user
$ vi test.sh
#!/bin/bash
while :
do
echo hello
sleep 10
done
$ chmod 777 test.sh
$ ulimit -c unlimited
$ ./test.sh
hello
hello
:
別ターミナルからtest.shのプロセスをkill
# ps -ef | grep test
user 3752 3723 0 22:19 pts/0 00:00:00 /bin/bash ./test.sh
root 3792 3759 0 22:20 pts/1 00:00:00 grep test
# kill -SEGV 3752
# ls /var/local/dumps
core.test.sh.3752
免責条項
このサポート ナレッジベースは、NetIQ/Novell/SUSE顧客、および弊社製品およびそのソリューションに関心のあるパーティへ、情報やアイデアの取得およびそれらの知識を得る為の有効なツールを提供します。 本文書の商品性、および特定目的への適合性について、いかなる黙示の保証も否認し、排除します。
- ドキュメント ID:00100037
- 作成年月日:12-MAY-16
- 修正年月日:12-MAY-16
-
- SUSESUSE Linux Enterprise 11
SUSE Linux Enterprise 12
- SUSESUSE Linux Enterprise 11
このドキュメントはあなたの問題を解決しましたか? フィードバックを送る