bash flock: выйти, если не удается получить блокировку

Для предотвращения одновременного выполнения задания 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 .

17
задан Scott Stensland 29 March 2017 в 20:57
поделиться