2017-04-23 110 views
0

我在Amazon Linux上的Symfony(PHP)命令被部署到Elastic Beanstalk。我添加了一個cron作業。一切都很美好。 cron作業運行,在/ tmp文件夾中創建日誌文件,但它是空的 - 每次執行命令時至少應該有幾個字符。 我在這裏看過幾篇關於運行cron作業的文章,但他們都沒有工作 - 關閉我的問題是this onePHP Symfony命令不能從cron工作直到手動運行

訣竅是,如果我SSH到實例並手動運行此命令都開始按預期工作。每次設置運行時,Cron都會運行該命令。但我需要手動第一次運行它,否則將無法正確執行。

我通過script.sh運行PHP命令,其中我有#!/ bin/bash。

問題是爲什麼這需要先手動運行,並從cron運行。否則它不會。 我已經將日誌文件權限設置爲0666,所以任何人都可以寫信給它,但沒有運氣。

我將Symfony命令部署到Elastic Beanstalk。如果我只有一個EC2實例不會成爲問題,但我使用Elastic Beanstalk來擴展它,並且需要它在沒有手動初始化的情況下運行。

任何幫助表示讚賞。 謝謝

+0

不知道,但是看: getent組| grep的的cron 這也許是因爲的cron/crontab的組不具有所需的權限 –

+0

@ Anyone_ph我什麼也沒得到。但是爲什麼當我從CLI運行它時呢? – Strabek

回答

1

最後,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中。

現在所有按預期工作。