つまり、core.<pid>
ファイルシステムに見えれば、コアファイルの作成が完了して直接使用できるという意味ですか?
私の質問に答えた。しかし、私はそれを少し説明することにしました。一部の隠しファイルで最初に作成され、作成が完了した後にのみターゲットパスに移動(名前変更)された
ようです。この場合、タスクは高速でアトミックである可能性があります。core.<pid>
.code.<pid>~
答え1
私は特に忙しいマルチスレッドシステムで、またはダンプの場所がネットワーク共有にある場合は賭けをしません(教授が10Mbitイーサネットシステムを介してNFSを介してスプールする必要がある8GBのコアファイルを生成することは注目に値します) )。ファイルシステムrename(1)
のアトミックには、一時ファイルをロックまたは書き込んだ後に書き換えるなどのトリックが必要なことがよくあります。いくつかの研究fs/coredump.c
Linux 4.3.3カーネルでは、カーネルが使用するファイル名を計算し(リンク解除競合条件を使用して!)、出力ファイルをスプールするため、そのようなロックまたは名前変更トリックがないとマークされます。
file_start_write(cprm.file);
core_dumped = binfmt->core_dump(&cprm);
file_end_write(cprm.file);
おそらく、他のユーザー領域が上位でビジネスを実行している間に実行されるのを防ぐ巨大なカーネルロックがないので(これは大規模なコアファイルの作成を遅くし、システムがどのように機能するかを確認してテストできます)、このプロセスに問題があるとは思わない。原子的なものはまったく見えません。
答え2
いいえ、他のファイルと同様に、書き込みが完了して閉じるのではなく、書き込みが開始されるとファイルシステムに表示されます。