Следующий механизм блокировки используется для предотвращения одновременного запуска задания cron
:
#!/bin/bash
echo "Before critical section"
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
При одновременном запуске двух экземпляров последний ждет, пока первый не закончит, а затем запустится. Это может привести к отставанию ожидающих запуска журналов.
Как мне изменить этот script, чтобы, если flock
не может получить блокировку, он завершает script? Я пробовал -n
без успеха.