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 回答