如何使用crontab执行Symfony命令 [英] How to use crontab to execute a Symfony command

查看:74
本文介绍了如何使用crontab执行Symfony命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现了两个类似的问题,但没有得到他们的帮助.

I found two similar questions, but wasn't helped by them.

输入以下命令后,我的Symfony命令就会运行:

I have a Symfony command that is working when I enter:

/usr/bin/php /home/bob/example_project/bin/console app:slack

我尝试使用 sudo crontab -e 制作一个crontab(每分钟运行一次):

I tried to make a crontab (run every minute) with sudo crontab -e:

MAILTO=""

* * * * * /usr/bin/php /home/bob/example_project/bin/console app:slack

但是它不起作用.我也找不到任何错误消息. sudo grep CRON/var/log/syslog 给出:

But it's not working. I can't find any error messages either. sudo grep CRON /var/log/syslog gives:

4月10日13:21:01 example_project CRON [23432]:(root)CMD(/usr/bin/php/home/bob/example_project/bin/console app:slack)

Apr 10 13:21:01 example_project CRON[23432]: (root) CMD (/usr/bin/php /home/bob/example_project/bin/console app:slack)

使用 sudo crontab -e -u bob sudo crontab -e -u www-data 不会更改任何内容.

Using sudo crontab -e -u bob or sudo crontab -e -u www-data doesn't change anything.

我做错了什么?

  • 编辑logfile.log具有以下内容:

PHP致命错误:未被捕获Symfony \ Component \ Debug \ Exception \ ClassNotFoundException:尝试执行从名称空间"Sensio \ Bundle \ Gene $"加载类"SensioGeneratorBundle"您是否忘记了另一个名称空间的使用"语句?在/home/bob/example_project/app/AppKernel.php:25堆栈跟踪:0/home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(403):AppKernel-> registerBundles()1/home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(113):Symfony \ Component \ HttpKernel \ Kernel-> initializeBundles()2/home/bob/example_project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68):Symfony \ Component \ HttpKernel \ Kernel-> boot()3/home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(120):Symfony \ Bundle \ FrameworkBundle \ Console \ Application-> doRun(Object(Sy $4/home/bob/example_project/bin/console(28):第25行的/home/bob/example_project/app/AppKernel.php中的S

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "SensioGeneratorBundle" from namespace "Sensio\Bundle\Gene$ Did you forget a "use" statement for another namespace? in /home/bob/example_project/app/AppKernel.php:25 Stack trace: 0 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(403): AppKernel->registerBundles() 1 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(113): Symfony\Component\HttpKernel\Kernel->initializeBundles() 2 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(68): Symfony\Component\HttpKernel\Kernel->boot() 3 /home/bob/example_project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php(120): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Sy$ 4 /home/bob/example_project/bin/console(28): S in /home/bob/example_project/app/AppKernel.php on line 25

推荐答案

存在环境问题.这样就解决了:

There was an environment issue. This fixed it:

SYMFONY_ENV=prod

* * * * * php /home/bob/example_project/bin/console app:slack

不需要php的完整路径,/usr/bin/php .

There was no need for the full path to php, /usr/bin/php.

如评论中所述,这也可以工作:

As mentioned in the comments, this also works:

* * * * * php /home/bob/example_project/bin/console app:slack -e prod

这篇关于如何使用crontab执行Symfony命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆