我在使用一些脚本来确保脚本不会运行两次时遇到了一些问题。
我已经使用它很长一段时间了,没有遇到什么大问题,但是在我刚刚从 Ubuntu 15.04 升级到 Ubuntu 15.10 的服务器上,它给我带来了麻烦,所以我认为可能存在问题。
我使用的代码如下所示:
# locking; make sure we are alone
lockfile-create /var/lock/mylockfile --retry 3 --quiet
result=$?
if [ ${result} -gt 0 ]
then
# allready running; bye!
exit 2
fi
lockfile-touch /var/lock/mylockfile &
lockfiletouch="$!"
trap "{ kill ${lockfiletouch}; lockfile-remove /var/lock/mylockfile; }" EXIT
然而,现在的结果是有时出现以下错误:
/usr/local/scripts/myscript.sh: line 1: 8173 Terminated lockfile-touch /var/lock/mylockfile
它发生的次数不到脚本运行次数的 1%,但运行的频率相当高。
有人能告诉我是什么原因导致的这个问题以及如何避免这个错误吗?
答案1
根据此,错误只是 lockfile-touch 被你的脚本杀死。
#bash-x 锁.sh + lockfile 创建 /var/lock/mylockfile --retry 3 --quiet + 结果=0 +'['0-gt0']' + 锁定文件触摸=3902 + trap '{ kill 3902; lockfile-remove /var/lock/mylockfile; }' 退出 + 杀死 3902 + lockfile-删除 /var/lock/mylockfile lock.sh:第 1 行:3902 终止 lockfile-touch /var/lock/mylockfile