linux – flock(1)无法释放锁定
发布时间:2021-01-14 17:45:53 所属栏目:Linux 来源:网络整理
导读:我有一组shell脚本,使用truecrypt和rsync在我的系统上执行备份.我想避免这些各种脚本同时运行的任何可能性. 他们在子shell中使用flock,如联机帮助页中所述: ( flock -n 9 || exit 1 # ... commands executed under lock ...) 9/var/lock/mylockfile 但是,锁
我有一组shell脚本,使用truecrypt和rsync在我的系统上执行备份.我想避免这些各种脚本同时运行的任何可能性. 他们在子shell中使用flock,如联机帮助页中所述:
但是,锁定总是无法获取后续运行(退出状态为1). 然而fuser / var / lock / mylockfile和lsof / var / lock / mylockfile什么都没有显示. 现在,如果我将命令flock -u添加到手动解锁,如下所示:
然后脚本工作. 我正确使用羊群吗?在块内调用flock -u是否安全? 仅供参考这些麻烦的脚本是在命令块中调用truecrypt的脚本. 最佳答案 问题是你在后台运行TrueCrypt,保持fd打开.您应该关闭fd以防止后台进程挂在锁上.代替您的实际代码,这是一个测试用例:
睡眠是用fd 9打开分叉,导致锁定被保留.让我们在后台进程时关闭fd 9:
(编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
未处理完善
-
无相关信息
最新更新