0

ユーティリティのflockマニュアル ページには、次の使用例が示されています。

(
    flock -s 200
    # ... commands executed under lock ...
) 200>/var/lock/mylockfile

がロックファイルのファイルハンドルであると仮定する200と、同じファイルハンドルが他のプロセスによって既に使用されているために、実行中に失敗する可能性はありますか? もしそうなら、ロックが確実に機能することを確認するためのトリックはありflockますか?

4

1 に答える 1

2

別のプロセスがファイル記述子 200 を使用しているかどうかは、まったく問題ではありません。考えてみてください。システム上のすべてのプロセスは、どこかを指しているファイル記述子 0、1、2 を持つ資格があり、すべてが同じ場所を指しているわけではありません。重要なのは、ファイル記述子 200 が使用されていることにプロセスが動揺しないことと、それに気付くプロセスがほとんどないことです。

そのため、必要なトリックはありません。ロック ファイルを使用する必要があるすべてのプロセスが実際にロック ファイルを使用していることを確認する必要があります。

于 2011-12-08T02:13:57.163 に答える