質問: 1 /etc/profileには、次のものがあります。ulimit -s -c unlimited >/dev/null 2>1 そして、私は見てすべてを確認します:cat /proc/sys/kernel/core_pattern cat /proc/sys/kernel/core_uses_pid したがって、ulimit -cを実行すると、unlimitedの値が返されます。ulimit -s -cを実行すると、unlimitedの値が返されます。ulimit -h -cを実行すると、unlimitedの値が返されます。そして、実行中のプロセスに対してkill -6を実行すると、コアが取得されません。ulimit -c unlimitedを実行してプロセスを再開し、kill -6を実行すると、コアが生成されます。ソフトリミットとハードリミットの違いを誰かが説明できますか?そして、ハード制限を変更する必要がありますか?コアが生成されることもあれば、生成されないこともあるので、この状況は好きではありません。limits.confを変更しても、自分が何をしているのかを本当に理解したいです。さらにいくつか開示する必要があるのは、rhel 6環境(x86_64)で実行していることです。また、十分なディスク容量があり、daemonプロセスでもsetuidプログラムでもありません。また、フォルダには新しいファイルを作成するための十分な権限があり、ランタイムディレクトリにはコアと呼ばれるファイル/フォルダはありません。
回答: ハード制限とソフト制限については、 limit のbashマニュアルセクションで読むことができます。シェルからプログラムを再起動するとコアファイルを取得すると言うので、/etc/profileを読み取る環境で元のプロセスが開始されていない可能性があります(そのファイルはログインシェルに対してのみ読み取られます)。そのプログラムを開始しているスクリプトにulimit -c unlimitedを追加することを検討してください(もちろん、プログラムを開始する行の前に)。