Когда я создаю свой образ сервера, я записываю во временный файл следующее:
* * * * * php /var/www/artisan schedule:run
а затем загрузите его с помощью
crontab < /tmp/cron
После развертывания образа запускаю cron -f
и я вижу, что процесс действительно запущен, но cronjob не запускается.
Если я сбегу crontab -e
, добавьте пробел, сохраните его, запустите crontab -e
снова и удалите пробел, cronjob работает нормально без перезагрузки cron.
Я пробовал перезагрузить cron при сборке с помощью /etc/init.d/cron reload
, но это не решает проблему.
crontab необходимо уведомить. Вы можете сделать что-то вроде этого, чтобы (осторожно!) Добавить через командную строку или с помощью скрипта:
(crontab -l 2>/dev/null; echo "* * * * * php /var/www/artisan schedule:run") | crontab -
В 2>/dev/null;
подавляет сообщение crontab, когда у пользователя есть пустой crontab.