Назад | Перейти на главную страницу

Повторение скрипта каждые 5 секунд без перекрытия существующих запусков crontab и просмотра

Я знаю, что crontab может планировать задачи только с точностью до минуты, и чтобы запланировать что-то чаще, чем 60 секунд, необходимо выбрать другой метод. Я понимаю watch будет ждать завершения процесса перед запуском другого. Можно ли совместить crontab и часы или это действительно ужасная идея?

* * * * * /usr/bin/flock -n /tmp/script.lockfile /usr/bin/watch -n 5 /usr/bin/php /home/user/script.php

По сути, мы используем flock для создания файла блокировки, чтобы предотвратить перезапуск cron команды watch, которая в противном случае запускалась бы каждые 60 секунд. Затем запускается Watch и запускает скрипт каждые 5 секунд.

Я не знаю, действительно ли это ужасно, но если вы посмотрите на текущую реализацию, вы заметите, что конечным результатом является watch (первая) работает вечно.

Пока это происходит, вы просите cron запустить flock -n, который будет всегда потерпеть неудачу, поскольку watch будет работать вечно, сохраняя исходную блокировку.

Если это что-то, что должно быть запущено все время (это похоже на запись cron), вы можете рассмотреть возможность запуска watch (или скрипт цикла со сном) при загрузке.