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