Бывает, что cron/CI/ручной запуск запускают один и тот же скрипт дважды.
Своеобразным замком может послужить
flock, он берёт advisory lock на файл через дескриптор:exec 9>/tmp/myjob.lock
Здесь мы открыли файл-замок и привязали его к FD
9.Пробуем взять
lock без ожидания, если уже занято, сразу выходим:flock -n 9 || exit 0
Дальше можно выполнять работу, пока процесс жив,
lock удерживается ядром:echo "running: $$"
Для проверки откроем второй терминал и запустим тот же блок, второй экземпляр завершится (или можешь заменить
exit 0 на сообщение):sleep 10
🔥
flock - способ защитить скрипт от повторного запуска: блокировка привязана к процессу, автоматически снимается ядром и не требует ручной очистки файлов.➡️ DevOps Ready | #совет
