TGViewer
Linux Ready | DevOps Linux Ready | DevOps @linux_ready · 11.2K subscribers
Post #1004 2.02K
Как гарантировать, что скрипт или команда не запустится дважды?

Часто cron запускается повторно, деплой стартует дважды, скрипт пересекается сам с собой.

PID-файлы — ненадёжны.
Проверки через ps — гонки.

В Linux есть решение — flock.
Запустить команду, только если она ещё не выполняется:
flock -n /tmp/deploy.lock deploy.sh


Если блокировка занят, flock завершится с ошибкой, команда не стартует.

Для скриптов ещё надёжнее:
exec 9>>/tmp/job.lock
flock -n 9 || exit 1


С этого момента гарантированно: только один экземпляр, блокировка снимается автоматически при exit.

🔥 flock — это advisory-блокировка ядра с атомарной установкой, а не договорённость скриптов. Используйте её для cron, деплоя, миграций, бэкапов и CI-шагов.

🚪 Linux Ready | #совет
  • 👍 17
  • 🔥 9
  • ❤ 6
  • 🤝 1
More from @linux_ready
  1. Oct 9, 2026Прокидываем TCP-порты через socat! Бывает требуется опубликовать локальный TCP-сервис на д…
  2. Oct 8, 2026😍 Linux Cheat Sheet — большая русскоязычная шпаргалка по Linux и Bash! Здесь есть не толь…
  3. Oct 7, 2026Подключаемся к закрытым серверам через SSH ProxyJump! В инфраструктуре серверы часто не им…
  4. Oct 7, 2026📂 Шпаргалка по DevOps, SRE и Platform Engineering! Например, SRE фокусируется на надёжнос…
  5. Oct 6, 2026В GNU/Linux есть отдельная утилита для преобразования чисел внутри текстовых потоков! Допу…
  6. Oct 6, 2026Большой файл можно клонировать почти мгновенно без полного копирования его данных! На файл…
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 →