flock
оборачивает блокировку вокруг выполнения команды и будет удерживать блокировку, пока эта команда выполняется.
Если это ваша задача cron, которая выполняется каждую минуту:
* * * * * /usr/bin/flock -n /tmp/fcj.lockfile /usr/local/bin/frequent_cron_job
flock
будет удерживать блокировку в течение / usr / local / bin / partial_cron_job
. Если это пакетное задание занимает больше минуты, cron не сможет получить блокировку и не будет запускать этот пакет снова и / или несколько экземпляров partial_cron_job одновременно, пока эта блокировка не будет снята.