以下の行を使用するコードがあり、詰まっています。オンラインで検索しましたが、よくわかりません。次のように設定された基本情報を理解してください。
lockfileを使用すると、1つ以上のセマフォファイルを作成できます。 lockfileが指定されたすべてのファイル(指定された順序で)の生成に失敗した場合、待機時間(デフォルトは8)秒待ち、最後に失敗したファイルを再試行します。
誰でもこれについて教えてもらえますか?よろしくお願いします。注:LockFileはパス変数です。
if lockfile -1 -r0 ${LockFile}
then
ベストアンサー1
目的は、lockfile
特定のコマンドの実行を保護することです。ロック(ミューテックスロックとも呼ばれる)。つまり、次のプログラムを検討してください。
if lockfile "$LockFile"; then
stuff
more stuff
rm -f "$LockFile"
else
echo 1>&2 "Fatal error: another process has been keeping the lock for too long or the lock file is inaccessible"
exit 3
fi
stuff; more stuff
一度に1つのスクリプトインスタンスしかこのセクションを実行できません。 2番目のインスタンスが起動すると、2番目のインスタンスは、このオプションで指定された最大時間の間、最初のインスタンスが完了するまで(より正確にはロックファイルが削除されるまで)待ちます。-TIME
パラメータを使用すると、-r0
2番目のインスタンスはまったく待たずにすぐに分岐に移動しますelse
。したがって、このスクリプト(または大きなスクリプトの一部である場合はスクリプトのこの部分)の同時インスタンスを実行することはできません。