Laravel 5中的调度程序在我的本地系统中使用crontab不起作用

时间:2015-10-11 20:09:52

标签: ubuntu cron laravel-5 crontab scheduler

当我运行' php artisan schedule:run'在终端中,它正在执行被删除的操作,但是当我配置我的crontab以自动执行它时它没有任何效果。 我在Kernel.php中的代码是:

$schedule->call(function () {
            $example=Example::orderBy('updated_at', 'asc')->limit(1)->first();
            $example->touch();
        })->everyMinute();

在crontab -e中我把

* * * * * php /path/to/laravel/project schedule:run 1>> /dev/null 2>&1

我尝试在crontab文件中执行其他命令,其他命令正在运行。所以我想这可能是php的东西,但我没有任何输出知道这是什么问题。

关于如何找出问题的任何想法?

2 个答案:

答案 0 :(得分:6)

我认为你的道路并不完整。你必须把Artisan包括在你的道路上。

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

例如:

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

有关详细信息,请参阅Laravel文档:Task Schedule

修改

如果您想查看Cronjob的输出,则必须删除以下内容:

>> /dev/null 2>&1

答案 1 :(得分:2)

有时问题是Cron不知道PHP在哪里。在这种情况下,您必须定义本地php安装的路径。在我的机器上,

crontab -e

有条目

* * * * * /usr/local/bin/php /home/younus/TruckJee/Code/Panel/artisan schedule:run

它按计划完美运作。另外,要检查您的crobjobs是否正在运行,请使用

cat /var/log/syslog

它应显示您的cronjob是否实际运行。 (即)

May 23 16:21:01 farveaz cron[1105]: (root) RELOAD (crontabs/root)
May 23 16:21:01 farveaz CRON[6812]: (younus) CMD (/usr/local/bin/php /home/younus/TruckJee/Code/Panel/artisan schedule:run)
May 23 16:21:01 farveaz CRON[6811]: (CRON) info (No MTA installed, discarding output)