TGViewer
Linux Ready | DevOps Linux Ready | DevOps @linux_ready · 11.2K subscribers
Post #1074 2.49K
Как защитить скрипт от двойного запуска?

Бывает, что 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 - способ защитить скрипт от повторного запуска: блокировка привязана к процессу, автоматически снимается ядром и не требует ручной очистки файлов.

🚪 Linux Ready | #совет
  • 👍 16
  • 🤝 7
  • 🔥 6
  • ❤ 3
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На Stepik запустили мощный курс по «Troubleshooting Docker и Kubernetes: поиск и устранени…
  5. Oct 7, 2026📂 Шпаргалка по DevOps, SRE и Platform Engineering! Например, SRE фокусируется на надёжнос…
  6. Oct 6, 2026В GNU/Linux есть отдельная утилита для преобразования чисел внутри текстовых потоков! Допу…
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 →