【发布时间】:2018-07-05 18:38:21
【问题描述】:
我已经在我的 AWS-EC2 实例上设置了 crontab,以使用 sudo crontab-e 每分钟通过根帐户访问 Laravel 调度端点:
* * * * * php ~/htdocs/artisan schedule:run >> /dev/null 2>&1
然而,尽管 cron 日志显示它确实每分钟都在运行:
Jan 26 12:02:01 ip-172-31-28-116 CRON[5057]: (root) CMD (php ~/htdocs/artisan schedule:run >> /dev/null 2>&1)
作业本身没有执行。
直接运行命令php ~/htdocs/artisan schedule:run >> /dev/null 2>&1 会触发作业并正常工作。
我真的在为这里出了什么问题而苦苦挣扎,我错过了什么吗?
【问题讨论】:
-
听起来像是从另一个用户运行到 cron (root) 的工作,在这种情况下,
~/可能不是您想的那样?而且由于您正在重定向输出,因此您可能看不到任何消息。 -
您希望
~扩展到什么?请尝试使用绝对路径。 -
公平点 - 我分别通过
sudo crontab和crontab通过root和用户(bitnami)运行:将root cron作业更改为绝对路径,但仍然没有触发Laravel 调度程序。Jan 26 12:19:01 ip-172-31-28-116 CRON[5245]: (root) CMD (php /home/bitnami/htdocs/artisan schedule:run >> /dev/null 2>&1) Jan 26 12:19:01 ip-172-31-28-116 CRON[5246]: (bitnami) CMD (php ~/htdocs/artisan schedule:run)
标签: php laravel amazon-ec2 cron