PHP Symfony 命令在手动运行之前无法从 cron 运行

标签 php linux symfony cron

我在 Amazon Linux 上有一个部署到 Elastic Beanstalk 的 Symfony (PHP) 命令。我添加了一个 cron 作业。一切看起来都很好。 cron 作业运行,在/tmp 文件夹中创建日志文件,但它是空的 - 每次执行命令时应该至少有几个字符。 我在这里看到了一些关于运行 cron 作业的帖子,但没有一个有效 - 我的问题是关闭 this one .

诀窍是,如果我通过 SSH 连接到实例并手动运行此命令,所有这些都会按预期开始工作。 Cron 会在每次设置为运行时运行该命令。但是第一次需要手动运行,否则无法正确执行。

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

问题是为什么这需要首先手动运行并且它从 cron 运行。否则它不会。 我已将日志文件权限设置为 0666,这样任何人都可以写入,但没有成功。

我将我的 Symfony 命令部署到 Elastic Beanstalk。如果我只有一个 EC2 实例不会有问题,但我使用 Elastic Beanstalk 来扩展它并需要它在没有手动初始化的情况下运行。

感谢任何帮助。 谢谢

最佳答案

终于,在 3 小时后,感谢 this post,我让它开始工作了和 Robert Brisita 的回答。

In crontab -e file:

SHELL=/bin/bash

*/1 * * * * $HOME/cron_job.sh

In cron_job.sh file:

#!/bin/bash

source $HOME/.bash_profile

some_other_cmd

诀窍是为 cron 启用环境变量。否则我会收到 Symfony 错误。 我没有看到它们,因为我在错误的地方输出了文件。它在 script.sh 文件中,而不是在 crontab 中。

现在一切正常。

关于PHP Symfony 命令在手动运行之前无法从 cron 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43569687/

相关文章:

php - 什么是 ? : in PHP 5. 3?

linux - 使用 linux 镜像托管 3rd 方 RPM

linux - 在 mozjpeg 上安装 npm 时出错,权限被拒绝?

html - 我应该把 CSS 文件放在哪里?交响乐 3.0

php - 在 Doctrine 2 实体上映射额外的行

php - 如何获取 session 数组数据 CodeIgniter

php - 是否有免费网站可以在线存储代码(php、javascript、css)?

symfony - 如何在 Symfony 中配置 http_basic 防火墙以在响应正文中返回 JSON?

php - 找出日期是否在两个日期之间,忽略年份

linux - docker tty 命令执行显示