最近、システムをopenSUSE13.1にアップグレードしました。 xinetdを介してシステム上でカスタムビルドのサービスを実行しており、古いxinetdでは、コアダンプを有効にするためにxinetdを開始する前にinitスクリプトにulimit -c unlimited
という行がありました。 openSUSE 13.1はsystemdを使用しているため、これは機能しなくなりました。
systemd-coredumpctl
は、クラッシュを確認するカーネルログメッセージがあるにもかかわらず、コアダンプを検出しません。 bashから手動でサービスを開始し、SIGSEGVを送信すると、構成したディレクトリにコアダンプが作成されます。コアダンプを元に戻すにはどうすればよいですか?
Systemdは構成ファイルでの制限の設定をサポートしていることがわかりました。情報はさまざまなmanページに散らばっています。 systemd.exec によると、コアダンプの作成/ファイルサイズの制限はLimitCOREで設定されます。さらに、システムが提供する構成ファイルを変更せずに、ユニット/サービス構成を変更することができます。詳細については、 ArchLinux Wiki をご覧ください。したがって、ファイル(および親ディレクトリ)を作成する/etc/systemd/system/xinetd.service.d/core.conf
次の内容で
[Service]
LimitCORE=infinity
その後、実行します
# systemctl daemon-reload
# systemctl restart xinetd
コアダンプの作成に必要な変更をアクティブにしました。