トップページ > コンテンツ > コンピュータ関連その他 > UNIXコマンド > flock

主なオプションについて

-x 排他ロック(ライトロック)。同じロックファイルを参照している別プロセスが排他ロック、共有ロックできなくなる。読み書きできない
-s 共有ロック(リードロック)。同じロックファイルを参照している別プロセスが共有ロックはできるが、排他ロックはできなくなる
-w ロックが指定時間ないに取得できないと失敗する。指定時間が0の場合はロックが即時に取得できないと失敗
-u 明示的にアンロックする場合に使う。通常ファイルディスクリプタを閉じると自動でアンロックするため、使用頻度は低いかも

ファイルを指定する方法(通常)

flock /path/to/lockfile command

ファイルディスクリプタを指定する方法

execでリダイレクトする方法

exec {ファイルディスクリプタ用変数名} > ロックファイルのパス
flock -x $ファイルディスクリプタ用変数名
command
exec $ファイルディスクリプタ用変数名 >&-

※exec {ファイルディスクリプタ用変数名} > ロックファイルのパスはbashが自動的にファイルディスクリプタ番号10以上をつけてくれる方法。execの詳細についてはこちら参照

サブシェルを使う方法

(
 flock ファイルディスクリプタ番号
 command
) ファイルディスクリプタ番号>> ロックファイルのパス
最終更新:2020年12月03日 08:53