为flock实用程序选择文件句柄

时间:2011-12-08 01:52:38

标签: shell unix locking flock

flock实用程序手册页提供了以下用法示例:

(
    flock -s 200
    # ... commands executed under lock ...
) 200>/var/lock/mylockfile

假设200是lockfile的文件句柄,是否有可能在某些运行期间失败,因为其他进程已经在使用相同的文件句柄?如果是这样,是否有任何技巧可以确保flock的锁定能够可靠地工作?

1 个答案:

答案 0 :(得分:2)

另一个进程是否也在使用文件描述符200,这无关紧要。想一想;系统上的每个进程都有权将文件描述符0,1,2指向某个地方,并且它们并不都指向同一个地方。重要的是,您的流程不会对正在使用的文件描述符200感到不安,而且很少有流程会注意到,更不用说了。

鉴于此,不需要任何技巧 - 您只需确保所有需要使用锁文件的进程实际上都使用它。