Я знаю, что crontab может планировать задачи только с точностью до минуты, и чтобы запланировать что-то чаще, чем 60 секунд, необходимо выбрать другой метод. Насколько я понимаю, часы
будут ждать завершения процесса, прежде чем начинать другой. Можно ли совместить 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 секунд.
Я не знаю, действительно ли это ужасно, но если вы посмотрите на текущую реализацию, то заметите, что конечный результат - часы
(первые), работающие вечно.
Хотя это случается, когда вы просите cron запустить flock -n
, что будет всегда терпеть неудачу, так как watch
будет работать вечно, сохраняя исходную блокировку.
Если что-то должно быть запущено все время (это похоже на запись cron), вы можете рассмотреть возможность запуска часов
(или сценария цикла со спящим режимом) при загрузке.