shell - 在Debian 7.11中羊群失败
问题描述
我希望我的脚本运行单例,我指的是flock,脚本运行良好,除了debian 7.11。
当我在 docker debian 7.11 中运行时,出现以下错误:flock: ./single.sh Text file busy
我下载了debian 9,运行良好,如果不能修复,我必须尝试另一种方法使脚本运行单例。
我想知道是否有办法解决这个问题。
#!/bin/bash
# singleton exec
[ "${EDR_FLOCKER}" != "$0" ] && exec env EDR_FLOCKER="$0" flock -eno "$0" "$0" "$@" || :
echo "Helloworld"
sleep 20
解决方案
我找到了失败的原因,flock的参数不能是脚本本身。如下修改脚本一切正常。
#!/bin/bash
# singleton exec
[ "${EDR_FLOCKER}" != "$0" ] && exec env EDR_FLOCKER="$0" flock -eno "$0.lock" "$0" "$@" || :
echo "Helloworld"
sleep 20
推荐阅读
- ruby-on-rails - 为什么这个表单 GET 请求不会将浏览器发送到呈现的视图?
- python - 使用 Python 规范化电话号码
- css - Bootstrap 4 Nav 的问题 - 对齐图标
- jenkins - Jenkinsfile 中带有类引用的 Jenkins 共享库
- crystal-lang - 在应用程序中嵌入水晶语言版本
- python - 如何在python列表中显示变量顺序?
- linux - LOAD 段的对齐方式不是 2MB 的倍数
- java - 将 SpringBoot 与 Java 10 模块系统一起使用的问题
- coldfusion - 从 Coldfusion 的备忘录字段中替换信用卡号
- mysql - MySQL SELECT WHERE 许多列小于一列,除非该列为零