Laravel + Crontab 不工作

Laravel + Crontab not working

我正在尝试在 Laravel 中设置调度程序。

这是我的 crontab,我调试过它并且工作正常 - 至少我的 cron 作业

* * * * * /bin/echo "foobar" >> /my_path/example.txt 

不知道这个行不行:

* * * * * php /var/www/myproject/artisan schedule:run 1>> /dev/null 2>&1

这是我在内核中的调度函数:

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

当我在我的项目中并尝试 php artisan inspire 它确实有效,所以我希望它每分钟触发一次,但它什么也做不了。没有任何反应。

有什么想法吗?

我也在使用 laravel 4.2,这是我的 Cron 命令,目前运行良好。

0   0   *   *   *   /usr/local/bin/php /*****/******/public_html/artisan command:firemyevent

希望对你有所帮助。

这部分只是让输出被遗忘,所以你永远不会看到它:

>> /dev/null 2>&1

为什么不试试:

* * * * * php /var/www/myproject/artisan schedule:run >> /my_path/example.txt 

并检查 /my_path/example.txt

中的 cron 是否 运行

默认的 inspire 命令基本上只是 echo 的引用,所以在 cron 中看到它的唯一方法是将它输出到服务器上的文件。

您可以使用类似于此的方法来执行此操作:

$schedule->command('inspire')->everyMinute()->appendOutputTo($filePath);

更多详情:https://laravel.com/docs/5.4/scheduling#task-output

你应该尝试一下

like * * * * * cd /Path/TO/YOUR_PROJECT/ && php artisan schedule:run >> /dev/null 2>&1

在我的例子中,我必须在我的 cron 作业中明确地 php 兼容 laravel 的版本:

cd /path/to/my/project && /usr/local/bin/ea-php71 artisan schedule:run > /dev/null 2>&1