当我运行' 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的东西,但我没有任何输出知道这是什么问题。
关于如何找出问题的任何想法?
答案 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)