我在部署到Elastic Beanstalk的Amazon Linux上有一个Symfony(PHP)命令。我添加了一份cron工作。一切都很好看。 cron作业运行,在/ tmp文件夹中创建日志文件,但它是空的 - 每次执行命令时应该至少有几个字符。 我在这里看到一些关于运行cron工作的帖子,但没有一个工作 - 我的问题关闭是this one。
诀窍在于,如果我通过SSH连接到实例并手动运行此命令,则所有操作都按预期启动。 Cron每次设置运行时都会运行该命令。但是我需要手动第一次运行它,否则它将无法正确执行。
我通过script.sh运行PHP命令,其中我有#!/ bin / bash。
问题是为什么这需要首先手动运行,然后从cron运行。否则它没有。 我已将日志文件权限设置为0666,因此任何人都可以写入但没有运气。
我将Symfony命令部署到Elastic Beanstalk。如果我只有一个EC2实例不会有问题,但是我使用Elastic Beanstalk来扩展它,并且无需手动初始化就需要它运行。
任何帮助表示赞赏。 感谢
答案 0 :(得分:1)
最后,经过3个小时后,我感谢this post和Robert Brisita的回答。
在crontab -e文件中:
SHELL = /斌/庆典
* / 1 * * * * $ HOME / cron_job.sh
在cron_job.sh文件中:
#!/斌/庆典
来源$ HOME / .bash_profile
some_other_cmd
诀窍是启用env vars到cron。否则我得到Symfony错误。 我没有看到它们,因为我输出的文件位置不对。它在script.sh文件中而不是在crontab中。
现在一切正常。