Manpages

名 前

flock − フ ァ イ ル ロ ッ ク を 取 得 し 、 そ の ロ ッ ク を 保 持 す る コ マ ン ド を 実 行 す る

書 式

flock [ −−shared | −−timeout=seconds ] lockfile command ..

説 明

flock(2) シ ス テ ム コ ー ル を 使 っ て フ ァ イ ル ロ ッ ク を 取 得 し 、 そ の ロ ッ ク を 保 持 す る 指 定 さ れ た コ マ ン ド を 実 行 す る 。 指 定 す る オ プ シ ョ ン に よ り 、 排 他 ロ ッ ク に も 共 有 ロ ッ ク に も で き る 。 ま た 、 ロ ッ ク 競 合 が 発 生 し た 際 の 動 作 は 、 ロ ッ ク が 使 用 可 能 に な る ま で 無 限 に 待 ち 続 け る (デ フ ォ ル ト ) よ う に 指 定 す る こ と も 、 指 定 さ れ た 時 間 の 後 に ロ ッ ク が 使 用 可 能 に な ら な け れ ば 失 敗 す る よ う に 指 定 す る こ と も で き る 。 時 間 を 0 に 指 定 す る と 、 コ マ ン ド は (訳 註 : ロ ッ ク の 取 得 を ) 全 く 待 た な い 。
−−shared
共 有 ロ ッ ク を 取 得 す る 。 共 有 ロ ッ ク の 取 得 は 、 他 者 に よ る 共 有 ロ ッ ク の 取 得 を 停 止 さ せ な い が 、 他 者 に よ る 排 他 ロ ッ ク の 取 得 を 停 止 さ せ る 。 逆 に 、 排 他 ロ ッ ク の 取 得 (デ フ ォ ル ト ) は 、 他 者 に よ る 排 他 ロ ッ ク の 取 得 も 共 有 ロ ッ ク の 取 得 も 停 止 さ せ る 。 一 般 的 に は 、 ロ ッ ク さ れ た デ ー タ を コ マ ン ド が 単 に 読 み 込 む 場 合 に は 共 有 ロ ッ ク が 使 用 さ れ 、 ロ ッ ク さ れ た デ ー タ に コ マ ン ド が 書 き 込 み を 行 う 場 合 に は 排 他 ロ ッ ク が 使 用 さ れ る 。
−−timeout=n

n 秒 以 内 に ロ ッ ク が 取 得 で き な い 場 合 は 、 中 止 (abort) す る 。 全 く ブ ロ ッ ク せ ず に ロ ッ ク を 取 得 し た い 場 合 は 、 −−timeout=0 と 指 定 す る こ と 。 タ イ マ ー は ロ ッ ク の 取 得 に の み 適 用 さ れ る 。 ロ ッ ク が 取 得 さ れ る と 、 タ イ ム ア ウ ト は 直 ち に キ ャ ン セ ル さ れ る 。 実 行 さ れ る コ マ ン ド は タ イ ム ア ウ ト の 対 象 で は な い 。

例 (い く つ か の 仮 想 的 な プ ロ グ ラ ム の 呼 び 出 し )

flock /etc/passwd read-and-write-to-passwd

flock −−shared /etc/passwd just-read-something-from-passwd

flock −−timeout=0 /sys /usr/local/bin/update-hotplug /sys

著 者

Written by Adam J. Richter