2013年2月25日 8:02 Yasuhiko Kamata
上記をダイレクトに回答すると、 "/etc/security/limits.conf" 内に "* soft core unlimited" という行を追記してシステムを再起動すると、 coreファイルを吐く (= "ulimit -c" で "unlimited" になる) ように なります (openSUSEだけでなく、他のLinuxでも使える方法です) 。
ただし、このままだとプロセス実行時のカレントディレクトリに出力されて しまうので、 "echo /var/crash/core.%e.%u.%t > /proc/sys/kernel/core_pattern" のように出力先のテンプレートを設定しておくと、もっと便利になるでしょう (ただしこちらはシステムを再起動すると元に戻ってしまいます)。
回答ありがとうございます。
合わせ技で/etc/sysctl.d/にファイルを作ることで
ブート時に自動的に/var/crash/へcoreを吐くよう設定を変更することにしました。
やったことをテスト手順にしました。
とりあえずこの後Software Managerが落ちる問題に関して
まずはhttps://bugzilla.novell.com/ に同様の問題が
既に報告されていないか調べてみたいと思います。
-------- core fileを出力するディレクトリを変更するテスト --------
* ulimit -c unlimited を実行する。
ulimit -a でcore file sizeがunlimitedになったか? 2013-02-25 OK
* cat を起動し<Ctrl>+\と入力したときcoreが生成されるか? 2013-02-25 OK
* sudo /sbin/sysctl -w kernel.core_pattern='/var/crash/core.%e.%u.%t'
で、/proc/sys/kernel/core_patternが/var/crash/core.%e.%u.%tに書き換わるか?
2013-02-25 OK
* sudo chmod o+w /var/crash で /var/crashのパーミッションが
drwxr-xrwx に変わるか? 2013-02-25 OK
* cat を起動し<Ctrl>+\と入力したとき/var/crash/ にcoreが吐かれるか? 2013-02-25 OK
* 以下の手順でリブート後に/var/crash/にcoreが生成されるようになるか?
1) /etc/security/limits.confに「* soft core unlimited」と書く。
2) /etc/sysctl.dにcore_pattern.confというファイルを以下の内容で作る。
kernel.core_pattern =/var/crash/core.%e.%u.%t
3) 古いcoreを消す。 sudo rm /var/crash/core.*
4) マシンリブート
5) cat を起動し<Ctrl>+\と入力
2013-02-25 OK
* 以上の操作で/var/crashにテスト用のcore以外にcoreが生成されていないか?
2013-02-25 NG
"core.dconf worker.1000.1361758042"というcoreファイルが生成されている。
-------- 問題 --------
* 2013-02-25 "core.dconf worker.1000.1361758042"という
coreファイルが生成されている。
fileコマンドによれば
from '/usr/bin/gnome-keyring-daemon --start --components=secrets'
とのこと。
もう一度rebootしたが、再現しない。
--------
--
1xx