首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >debian 7.11中的flock失败

debian 7.11中的flock失败
EN

Stack Overflow用户
提问于 2019-07-02 00:13:37
回答 2查看 32关注 0票数 1

我希望我的脚本单机运行,我指的是flock,脚本运行得很好,除了Debian7.11。

当我在docker debian 7.11中运行时,它给出了以下错误: flock:./single.sh Text file busy

我下载了debian 9,它运行得很好,如果这个问题不能解决,我不得不尝试另一种方式让脚本单例运行。

我想知道是否有办法解决这个问题。

代码语言:javascript
复制
#!/bin/bash
# singleton exec
[ "${EDR_FLOCKER}" != "$0" ] && exec env EDR_FLOCKER="$0" flock -eno "$0" "$0" "$@" || :

echo "Helloworld"
sleep 20
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-02 22:54:18

我找到了这个失败的原因,flock的论点不可能是脚本本身。修改脚本,如下所示,一切正常。

代码语言:javascript
复制
#!/bin/bash
# singleton exec
[ "${EDR_FLOCKER}" != "$0" ] && exec env EDR_FLOCKER="$0" flock -eno "$0.lock" "$0" "$@" || :

echo "Helloworld"
sleep 20
票数 1
EN

Stack Overflow用户

发布于 2021-06-01 15:18:35

要覆盖此bug,您可以重新调用脚本chmod -w script.sh中的写权限,或者如果它应该从根chattr +i script.sh运行,则将其设置为不可变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56838985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档