@101-s

Как запустить один скрипт в linux с защитой от двойного запуска?

в кроне настроил запуск через flock
*/1 * * * * flock -n /tmp/lock -c /var/www/python/x/run.sh > /var/www/python/x/logs/log.txt 2>&1


но он выдает ошибку
flock: -c requires exactly one command argument

вот так тоже пробовал
*/1 * * * * flock -n /tmp/lock -c '/var/www/python/venv_x/bin/python3 /var/www/python/x/test.py' > /var/www/python/x/logs/log.txt 2>&1


Подскажите как исправить или другие варианты запуска python скрипта в CentOs
  • Вопрос задан
  • 199 просмотров
Решения вопроса 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Добавить в начало скрипта на проверку конкретного lck файла и выход если он есть.
Если нет создавать файла, запускать скрипт и удалять файл.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
встройте проверку в /var/www/python/x/run.sh
проверяйте наличие лок файла (лучше пид процесса в него ложить) - если файл есть. выходим из скрипт, если файла нет - создаем и запускаем питон, после чего файл удаляем.

Продвинутая фича - проверять не только наличие лок файла, но и наличие процесса по PID, который в файл положили
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы