Я создал команду в laravel для обновления состояния моего объекта каждую минуту. В моем Kernel.php у меня есть следующее:
/**
* Define the application command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->command('solicitation:update')
->everyMinute();
}
Когда я запускаю solicitation:update
или php artisan schedule:run
, команда выполняется отлично. Затем я запускаю команду * * * * * php/home/nigellima/Dropbox/Laravel/plataformaTS/artisan schedule:run >>/dev/null 2>&1
чтобы задача запускалась каждую минуту, но ничего не происходит. Я проверил мой пакет cli, переместил проект в /var/www/
на удаленном сервере, но команда никогда не выполняется. Что мне не хватает?
Я использую Laravel 5.6 на Ubuntu.
Заранее спасибо!
Вам необходимо предоставить полный путь к исполняемым файлам в cron. Чтобы найти местоположение PHP, выполните which php
с помощью командной строки. Затем обновите запись cron соответственно, например, если путь: /usr/bin/php
:
* * * * * /usr/bin/php /home/nigellima/Dropbox/Laravel/plataformaTS/artisan schedule:run >> /dev/null 2>&1
Если он все еще не работает, вам нужно будет проверить свои файлы журналов, чтобы получить фактическую ошибку. См. Https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log.
which php
вернул мне тот же путь. Но ничего не происходит. Я проверяю, работает ли он с помощью информационных сообщений в laravel.log. Вернет ли cron задачи в другое место?
/dev/null 2>&1
поскольку она подавит все выходные данные, включая ошибки.
crontab -e
и поместить эту команду туда.