flock
实用程序手册页提供了以下用法示例:
(
flock -s 200
# ... commands executed under lock ...
) 200>/var/lock/mylockfile
假设200
是lockfile的文件句柄,是否有可能在某些运行期间失败,因为其他进程已经在使用相同的文件句柄?如果是这样,是否有任何技巧可以确保flock
的锁定能够可靠地工作?
答案 0 :(得分:2)
另一个进程是否也在使用文件描述符200,这无关紧要。想一想;系统上的每个进程都有权将文件描述符0,1,2指向某个地方,并且它们并不都指向同一个地方。重要的是,您的流程不会对正在使用的文件描述符200感到不安,而且很少有流程会注意到,更不用说了。
鉴于此,不需要任何技巧 - 您只需确保所有需要使用锁文件的进程实际上都使用它。