Я знаю, что 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
(или скрипт цикла со сном) при загрузке.