我有一个Laravel 5.5安装,我试图让调度程序运行 . 我运行了以下cron作业,它运行正常 .

* * * * * php /var/www/html/project1/artisan schedule:run >> /var/www/html/project1/schedule.log

cron作业输出到一个日志文件,如果我运行工匠日程表,我在cron中获得相同的结果:从命令行运行 . 结果始终相同,并且表示没有准备好运行的计划命令 . 当作业运行并且我得到输出时,问题似乎与cron不一致 .

我配置了简单的artisan inspire命令来运行Laravel计划功能 . 我可以在php artisan启动命令行上运行inspire命令,它工作正常 . 我理解所有关于时区的帖子,但它不是时区问题,命令根本不会运行 . 我也没有使用withoutOverlapping(),所以这不是我的问题 . 所以我每分钟运行一个cron作业来运行laravel计划,它输出到我的日志,这表明cron和Laravel正在通信 . 我认为问题一定是Laravel不认为有一个需要执行的命令 . 我不知道如何进一步调试这一点,所以任何帮助将不胜感激 .

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    protected $commands = [
        //
    ];

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('inspire')
             ->everyMinute();
    }

    protected function commands()
    {
        require base_path('routes/console.php');
    }
}