systemdへの最近のアップグレード後にコアダンプはありませんか?


12

作業中のプログラムを実行すると、次のメッセージが表示されて失敗します。

...
Aborted (core dumped)

ただし、コアダンプは作成されません。コアダンプは以前に作成されたものであり、それに関連するものを変更したことは覚えていません。

走るulimit -aと戻ってきます

$ ulimit -a
core file size          (blocks, -c) unlimited
...

その他のポイント、

  • ユーザーが現在のディレクトリにファイルを作成できることを確認しました。
  • について読みました/proc/sys/fs/suid_dumpable。現在、私のマシンでは0に設定されています。1または2に変更しようとしましたが、違いはありませんでした。
  • また、ルートとしてプログラムを実行しようとしましたが、それでも違いはありませんでした。

残念ながら、最後に成功したコアダンプをいつ生成できたか覚えていません。

回答:


8

のドキュメントからcoredump.conf

ベンダーから提供された構成ファイルを無効にするには、ベンダー構成ファイルと同じファイル名でシンボリックリンクを/dev/nullの構成ディレクトリに配置することをお勧めし/etc/ます。

sudo ln -s /dev/null /etc/sysctl.d/coredump.conf
sudo systemd-sysctl 

systemd以来、物事は異なって管理されます。


うわー、あなたは正しいです!少し前に、systemdに切り替えました。sudo systemd-coredumpctl不足しているすべてのコアダンプを表示します。ソリューションは機能しましたが、システムの再起動後にのみ機能しました。
フィリップクラッセン

1
systemd「S systemd-sysctl.serviceだけ実行sysctlブートの適切な時点で、変更に手でそれを再実行するハンドルが。また、構成ファイルの目的と内容を調査せずに、構成ファイルを作成/上書きしないでください。
フォンブランド

1
ファイルが名前に変更しているようで50-coredump.conf、現在の起動中に設定を適用するためには、私が見る、手動設定のsysctlを変更実行する必要がありました、stackoverflow.com/q/2065912/427545を
-Lekensteyn

2
デフォルトに戻すには、空の文字列を設定しないで、代わりにこれを使用してsysctl -w kernel.core_pattern="core"
ください。– Lekensteyn

2

このcoredumpctlコマンドを使用して、コアダンプを取得するか、gdbを実行することができます。それは、それらを扱う「systemd承認済み」の方法です。:-/

ある意味では、systemdがこれらのすべてをキャプチャしているのはいいことです。しばらくすると自動的に消去され、バグレポート用のクラッシュダンプを簡単にアップロードできるからです。

しかし、それは、systemdが関与する前にコアダンプがどのように機能するかを知っていた人々への通知やヒントがほとんどない、不快な変化でした。「core.pid.txt」という名前のファイルを削除して、coredumpctlを使用してコアダンプを取得する手順と、.txtファイルの作成をオフにする方法は、ファイルが散らかっていても大きな助けになりますしばらくの間ファイルシステム。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.