Задача файла блокировки
- защитить выполнение некоторых команд блокировкой (также называемой мьютексом) . То есть рассмотрим следующую программу:
if lockfile "$LockFile"; then
stuff
more stuff
rm -f "$LockFile"
else
echo 1>&2 "Fatal error: another process has been keeping the lock for too long or the lock file is inaccessible"
exit 3
fi
Только один экземпляр сценария может одновременно выполнять материал ; другие вещи
часть. Если вы запустите второй экземпляр, то второй будет ждать, пока первый не закончит работу (точнее, пока он не удалит файл блокировки), до определенного максимального времени, заданного параметром - ВРЕМЯ
.
С параметром -r0
второй экземпляр вообще не ждет: он немедленно переходит в ветвь else
. Таким образом, вы не можете запускать параллельный экземпляр этого сценария (или этой части сценария, если это всего лишь одна часть более крупного сценария).