flock会在进程退出时自动释放吗?

Ban*_*oot 13 unix linux bash operating-system

在Linux中的bash脚本中,我使用flock [命令flock,而不是系统调用flock()]来实现文件锁定,从而防止对共享资源(这是tmpfs中的文件)的并发访问.

我有陷阱处理程序来处理我的脚本异常终止: trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM

$ LOCK是我的锁文件,$ TMPFS_FILE是我的共享资源.

我的问题是我是否需要明确地执行文件解锁?或者Linux在所有程序终止[自愿终止以及强制]方案时为我做了吗?

Pau*_*ce. 16

来自man 1 flock:

-u, - unlock

          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.
Run Code Online (Sandbox Code Playgroud)