Столкнулся с проблемой, написанный мною бот для сайта запускался раз в минуту и однажды на сервере, где работал бот интернет канал сильно просел, как результат за минуту бот не успел завершить свою работу.
crontab
запустил его еще раз, бот снова не успел, а crontab
продолжал беспощадно запускать копии бота - последствия были не очень приятными.
Но проблема решилась очень просто, через flock
.
Теперь скрипт не запускается до тех пор, пока предыдущий запуск не закончит работу!
Например, запуск произвольного скрипта из crontab
раз в минуту:
* * * * * root flock -n /tmp/script.lock -c /path/to/script.sh
Рассмотрим опции:
-n /tmp/script.lock
- путь доlock
файла.-c /path/to/script.sh
- путь до скрипта или программы, которую нужно запустить.
Эта утилита имеется штатно на FreeBSD и Linux.
Comments
comments powered by Disqus