У меня есть некоторые проблемы с небольшим количеством сценария, который я использую для проверки, что сценарий не работает дважды.
Я использовал это в течение достаточно долгого времени без очень проблем, но это дает мне проблему на сервере, который я просто обновил от 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% времен, скрипт запущен, но это выполняется довольно часто.
Кто-либо может дать мне какой-либо ключ к разгадке на том, что могло бы вызывать это и как я могу предотвратить эту ошибку?
В соответствии с этим, ошибка заключается в том, что ваш скрипт просто убивает lockfile-touch.
# bash -x lock.sh + lockfile-create /var/lock/mylockfile --retry 3 --quiet + result=0 + '[' 0 -gt 0 ']' + lockfiletouch=3902 + trap '{ kill 3902; lockfile-remove /var/lock/mylockfile; }' EXIT + kill 3902 + lockfile-remove /var/lock/mylockfile lock.sh: line 1: 3902 Terminated lockfile-touch /var/lock/mylockfile