首页 > 解决方案 > 在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

标签: shellsingletonflock

解决方案


我找到了失败的原因,flock的参数不能是脚本本身。如下修改脚本一切正常。

#!/bin/bash
# singleton exec
[ "${EDR_FLOCKER}" != "$0" ] && exec env EDR_FLOCKER="$0" flock -eno "$0.lock" "$0" "$@" || :

echo "Helloworld"
sleep 20

推荐阅读