Как работать с утилитой flock?

пытаюсь разобраться с утилитой flock, что бы реализовать запуск скрипта по cron раз в несколько секунд

как я понял при запуске через flock команды повторный запуск должен быть невозможен, пока существует созданный loc файл. Однако у меня команда

flock -w 10 /tmp/lock.lock ./dev.sh

Чудесно отрабатывает столько раз подряд сколько я даю это команду в консоли. Что я делаю не так? Или я неверно понял то, что делает утилита?
  • Вопрос задан
  • 1452 просмотра
Пригласить эксперта
Ответы на вопрос 2
Jump
@Jump Куратор тега Системное администрирование
Системный администратор со стажем.
пытаюсь разобраться с утилитой flock, что бы реализовать запуск скрипта по cron раз в несколько секунд
А какое отношение эта утилита имеет к запуску по cron?

Или я неверно понял то, что делает утилита?
Ну тут сложно понять неверно. Вся функциональность утилиты описана в ее названии.
Задача утилиты - делать блокировку файла (FileLOCK).

flock -w 10 /tmp/lock.lock ./dev.sh
Запустить ./dev.sh, создать файл блокировки /tmp/lock.lock, -w 10 - время ожидания освобождения файла блокировки.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
flock -w 10 /tmp/lock.lock ./dev.sh

Чудесно отрабатывает столько раз подряд сколько я даю это команду в консоли. Что я делаю не так? Или я неверно понял то, что делает утилита?

Неправильно понял. В такой форме запуска она блокирует файл на время выполнения ./dev.sh, после чего освобождает его. Можно запускать так:
flock -w 10 /tmp/lock.lock ./dev.sh &
и тогда должна наблюдаться сериализация на /tmp/lock.lock и отвал по таймауту, если ./dev.sh работает дольше 10 секунд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы