Установка flock в Unix/Linux
flock — утилита, которая позволяет использовать лок-файл для предотвращения запуска копии процесса (вашего скрипта, крона или чего-то еще). Например, используя cron нужно быть уверенным, что предыдущий запуск вашего скрипта уже завершен.
Установка flock в Unix/Linux
У Linux ОС, данная утилита уже идит с самой коробки.
Установка flock в Mac OS X
Для начала, устанавливаем HOMEBREW, после чего — выполняем:
$ brew tap discoteq/discoteq
Этой командой, что-то поставится в ОС, осталось выполнить установку flock-а:
$ brew install flock
Можно использовать!
Установка flock на другие Unix/Linux ОС
Если в системе не имеется этой утилиты, то можно собрать ее из сорцов:
# FLOCK_VERSION=0.2.3 \ wget https://github.com/discoteq/flock/releases/download/v${FLOCK_VERSION}/flock-${FLOCK_VERSION}.tar.xz \ xz -dc flock-${FLOCK_VERSION}.tar.xz | tar -x \ cd flock-${FLOCK_VERSION} \ ./configure \ make \ make install
Вот и все!
Использование flock в Unix/Linux
Например, можно использовать:
$ `which flock` -w 600 /var/tmp/test_script.lock ./test_script.sh
Или:
$ `which flock` -w600 /var/tmp/myscript.lock bash myscript.sh
Данная команда, запустит ./test_script.sh скрипт (он находится в текущей директории). Так же, будет создан test_script.lock файл. Пока он активен, новый вызов скрипта не будет выполнен из-за лока. Когда программа (скрипт) завершится, то лок файл будет удален, тем самым — можно будет использовать повторый запуск. Параметр -w 600 определяет время ожидания комманды flock на освобождение lock-файла. Чтобы убрать время блокировки лока, используйте «-w 0» опцию. Так же, можно ожидать бесконечно долгое временя, — тогда нужно параметр опустить.
Таким вот способом, можно предотвратить повторный запуск ващих скриптов. Вот и все, статья «Установка flock в Unix/Linux» завершена.