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

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

作業中のプログラムを実行すると、次のメッセージで失敗します。

...
Aborted (core dumped)

ただし、コアダンプは生成されません。コアダンプは以前に作成しましたが、関連する内容を変更した記憶はありません。

再び走ったときulimit -a

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

他のポイント、

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

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

答え1

ドキュメントから始めてcoredump.conf

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

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

システム化後の状況は異なる方法で管理されます。

答え2

coredumpctlこのコマンドを使用してコアダンプを取得したり、それに対してgdbを実行したりできます。これがこれを処理する「システム承認」方法です。 :-/

ある意味では、systemdがこれらすべてのエントリをキャプチャするのは良いことです。一定時間が経過すると自動的に削除し、エラーレポートのクラッシュダンプを簡単にアップロードできるためです。

しかし、systemdが含まれる前にコアダンプがどのように機能したかを知っていた人にとって、これはほとんど通知や刺激なしに衝撃的な変化でした。 coredumpctlを使用してコアダンプを取得する方法とファイル生成を無効にする方法を含む "core.pid.txt"というファイルを削除するだけで、.txt多くの助けになります。ただし、これによりファイルシステムがしばらく複雑になります。

関連情報