flock
Простая защита от двойного запуска заданий cron. Эта комманда запустит /root/myscript.sh и создаст lock-файл для данного процесса. Пока он активен, новый вызов данного скрипта не произойдет. После завершения программы, блокировка файла снимается и процесс может быть снова запущен. Параметр -w 600 определяет время ожидания комманды flock на освобождение lock-файла. Для моментальной отмены выполнения процесса используйте параметр -w 0, для ожидания же бесконечно долгого времени параметр нужно опустить.
Принимаются следующие параметры:
- -s --sharedУстанавливает общую блокировку
- -x --exclusiveУстанавливает эксклюзивную блокировку
- -u --unlockСнимите блокировку
- -n --nonblock
- -w --timeoutВремя ожидания блокировки
- -o --closeЗакрывет дескриптор файла перед запуском команд
- -c --commandЗапуск командной строки одного через оболочки
Пример использования:
crontab
* * * * * /usr/bin/flock --lockfile=/tmp/myapp.locked -- /path/to/myapp