mknmz は、実行時に NMZ.lock2 というファイルを生成して、重複実行されないようになっているそうです。
でも、私の環境では実行されることがあります。おかしいですね。
どうやら、mknmz が実行されてすぐに、NMZ.lock2 が生成されるわけではなくて、対象ファイルをチェックしてからとかある程度処理をしてから生成されるみたいです。まぁ勘ですけど。
cronとかで、定期的に実行してたとして、対象ファイルが沢山あったりして、NMZ.lock2 が生成されるまで時間がかかってる間にもう一回 mknmz を実行したりするとそのまま重複実行できちゃたりします。
なので、daemontoolsで実行をコントロールすることにしましたよ、と。
1 件のコメント:
ざっとmknmzのソースを読んだ限りですが、インデクシングの開始前にlock2をチェックしてますので、後から動いた方のmknmzはインデクシングせずに途中終了すると思います。
コメントを投稿