私が見た「標準」ロックスニペットは次のようになります...
(
flock -n 200 || exit 1;
# do stuff
) 200>program.lock
exec
その時点で使用することは安全ですか?サブプロセスはロックを保持しますか?
(
flock -n 200 || exit 1;
exec /usr/bin/python vendors-notcoolstuff.py
) 200>program.lock
exec'dプロセスは開いているファイル記述子を保持しており、flockはファイル記述子を使用するため、動作するはずです。しかし、私はそれを決定的かつ明確にする文書を見つけることができません。
記録のために、これはLinuxに固有です。