17

Linux の bash スクリプトでは、flock [システム コール flock() ではなくコマンド flock] を使用してファイル ロックを実装し、共有リソース [tmpfs 内のファイル] に対する同時アクセスを保護しています。

スクリプトの異常終了を処理するためのトラップ ハンドラーがあります。 trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM

ここで、$LOCK はロック ファイルで、$TMPFS_FILE は共有リソースです。

私の質問は、ファイルのロック解除も明示的に行う必要がありますか? それとも、すべてのプログラム終了 [自発的終了と強制終了の両方] のシナリオで、Linux が代わりにそれを行いますか?

4

1 に答える 1

18

からman 1 flock:

-u, --ロック解除

          Drop  a  lock.   This  is  usually not required, since a lock is
          automatically dropped when the file is closed.  However, it  may
          be  required  in special cases, for example if the enclosed com‐
          mand group may have forked a background process which should not
          be holding the lock.
于 2012-06-11T21:16:31.710 に答える