Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
system:flock [2016/01/27 10:00] – [Принимаются следующие параметры:] mirocowsystem:flock [2016/01/27 10:46] (текущий) mirocow
Строка 1: Строка 1:
 +{{tag>system bash}}
 +
 ====== flock ====== ====== flock ======
  
-Простая защита от двойного запуска заданий cron+Простая защита от двойного запуска заданий cron
 +Эта комманда запустит /root/myscript.sh и создаст lock-файл для данного процесса. Пока он активен, новый вызов данного скрипта не произойдет. 
 +После завершения программы, блокировка файла снимается и процесс может быть снова запущен. 
 +Параметр -w 600 определяет время ожидания комманды flock на освобождение lock-файла. 
 +Для моментальной отмены выполнения процесса используйте параметр -w 0, для ожидания же бесконечно долгого времени параметр нужно опустить.
  
 ===== Принимаются следующие параметры: ===== ===== Принимаются следующие параметры: =====
  
-  * **--lockfile=/path/to/file** Обязательный параметр, задающий имя файла для лока. Если такого файла нет, он создастся автоматически. Разумеется, для каждого задания должен быть свой файл. +  * **-s  --shared**     Устанавливает общую блокировку 
-  * **--maxtime=N** Время в секундах, отводящееся скрипту на «нормальную» работу. Если скрипт работал дольше, в STDERR будет выведено сообщение, которое cron может отправить вам на почту. +  * **-x  --exclusive**  Устанавливает эксклюзивную блокировку 
-  * **--wait** Если этот параметр указан, lockrun не отменит выполнение скрипта, а будет ждать, пока предыдущий процесс освободит лок. +  * **-u  --unlock**     Снимите блокировку 
-  * **--verbose** Как всегда, выдача более подробной информации о ходе процесса. +  * **-n  --nonblock**    
-  * **--quiet** Не выдавать сообщений об ошибках. Можно включить, если отказ в запуске задания не является серьезной проблемой.+  * **-w  --timeout**    Время ожидания блокировки 
 +  * **-o  --close**      Закрывет дескриптор файла перед запуском команд 
 +  * **-c  --command**    Запуск командной строки одного через оболочки 
  
 ===== Пример использования: ===== ===== Пример использования: =====
 +
 +==== crontab ====
  
 <code> <code>
 * * * * * /usr/bin/flock --lockfile=/tmp/myapp.locked -- /path/to/myapp * * * * * /usr/bin/flock --lockfile=/tmp/myapp.locked -- /path/to/myapp
 </code> </code>