PHP Symfony命令不能从cron工作直到手动运行
问题描述:
我在Amazon Linux上的Symfony(PHP)命令被部署到Elastic Beanstalk。我添加了一个cron作业。一切都很美好。 cron作业运行,在/ tmp文件夹中创建日志文件,但它是空的 - 每次执行命令时至少应该有几个字符。 我在这里看过几篇关于运行cron作业的文章,但他们都没有工作 - 关闭我的问题是this one。PHP Symfony命令不能从cron工作直到手动运行
诀窍是,如果我SSH到实例并手动运行此命令都开始按预期工作。每次设置运行时,Cron都会运行该命令。但我需要手动第一次运行它,否则将无法正确执行。
我通过script.sh运行PHP命令,其中我有#!/ bin/bash。
问题是为什么这需要先手动运行,并从cron运行。否则它不会。 我已经将日志文件权限设置为0666,所以任何人都可以写信给它,但没有运气。
我将Symfony命令部署到Elastic Beanstalk。如果我只有一个EC2实例不会成为问题,但我使用Elastic Beanstalk来扩展它,并且需要它在没有手动初始化的情况下运行。
任何帮助表示赞赏。 谢谢
答
最后,3小时后,我得到了它的工作感谢this post和罗伯特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中。
现在所有按预期工作。
不知道,但是看: getent组| grep的的cron 这也许是因为的cron/crontab的组不具有所需的权限 –
@ Anyone_ph我什么也没得到。但是为什么当我从CLI运行它时呢? – Strabek