TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.64K subscribers
Post #786 1.35K
Как защитить скрипт от двойного запуска?

Бывает, что 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 | #совет
  • ❤ 9
  • 👍 7
  • 🔥 7
More from @devops_ready
  1. Oct 5, 2026Изоляция процессов в Linux через Unshare без Docker и тяжелых утилит. Мы научимся использо…
  2. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  3. Oct 5, 2026DigitalOcean Community собирает подробные руководства по Linux! В разделе Linux Basics ест…
  4. Oct 2, 2026Знали, почему настройки systemd-сервиса лучше менять через systemctl edit? Допустим, прило…
  5. Oct 2, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  6. Oct 2, 2026Этот инструмент поможет поять из чего на самом деле состоит Docker-образ! Он содержит терм…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →