我正在用一些脚本来确保脚本没有运行两次。
我已经使用了很长一段时间没有太多问题,但它给了我从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
它发生的时间less于脚本运行时间的1%,但运行频率很高。
任何人都可以给我任何线索,可能是什么原因造成这种情况,我怎么能防止这个错误?
据此,错误只是由你的脚本杀死lockfile-touch。
#bash -x lock.sh + lockfile-create / var / lock / mylockfile --retry 3 --quiet +结果= 0 +'['0 -gt 0']' + lockfiletouch = 3902 +陷阱“{杀死3902; lockfile-remove / var / lock / mylockfile; }' 出口 杀了3902 + lockfile-remove / var / lock / mylockfile lock.sh:第1行:3902终止的lockfile-touch / var / lock / mylock文件