Laravel schedular работает вручную, но не автоматически?
У меня есть это в моем Kernal.php
:
$schedule->call('removeTemporaryFiles')->everyMinute();
Когда я нажимаю php artisan schedule:run
, это работает как заклинание. Но я также побежал:
* * * * * php /var/www/html/archive/artisan schedule:run >> /dev/null 2>&1
Но он не запускается автоматически. Я ждал больше минуты, но он все еще не работает. Что я делаю не так?
И где сохранен cron основной машины? Тот, который работает каждую минуту и вызывает расписание ремесленников: запуск?
2 answers
Для запуска расписаний сначала необходимо добавить задание cron в таблицу cron. Выполните эту команду
sudo crontab -e
Затем выберите нужный вам редактор.
Затем добавьте следующую строку:
* * * * * php /var/www/html/archive/artisan schedule:run >> /dev/null 2>&1
Наконец, в вашем Kernel.php
вы добавляете расписание:
$schedule->command(<artisan command>)->everyMinute();
Поиск заданий cron:
В зависимости от того, как настроена ваша система Linux, вы можете посмотреть:
- /var/spool/cron/* (user crontabs)
- /etc/crontab (system-wide crontab)
Кроме того, во многих дистрибутивах есть:
- /etc/cron.d/* These configurations have the same syntax as /etc/crontab
- /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly
Это просто каталоги, содержащие исполняемые файлы, которые выполняются ежечасно, ежедневно, еженедельно или ежемесячно в соответствии с их именем каталога.
Кроме того, у вас могут быть задания at (проверьте /var/spool/at/*
), anacron (/etc/anacrontab
и /var/spool/anacron/*
) и, возможно, другие, которые я забыл.