Laravel Forge长跑艺术指挥与守护进程

时间:2015-08-13 10:12:37

标签: php bash laravel laravel-5.1 artisan

我已经在Laravel(L5)中创建了一个命令,该命令连接到twitter流API,并且可以使用php artisan collect-tweets。当我在本地运行它时,因为它是一个持久连接,它基本上在终端窗口中无限运行。我现在已将应用程序部署到Laravel Forge,我希望它运行命令而不是终止进程。我已经阅读了here所说的答案但是我想知道是否有另一种方法可以在Laravel Forge上运行一个长期运行(无限)工匠命令 - 也许是使用守护进程工人?

我尝试过的事情:

  1. 通过Forge控制台创建一个守护进程并执行' mysite.co.uk/php artisan我的命令' (不起作用)
  2. 创建一个包含php artisan collect-tweets的run.sh,并尝试通过创建一个命令为mysite.co.uk/run.sh的守护进程来运行。这给我一个错误,说它找不到命令工匠
  3. 为守护程序提供run.sh脚本/home/forge/mysite.co.uk/run.sh的完整路径,该错误表示Exited too quickly (process log may have details)(经典问题...)
  4. 任何想法如何实现我的目标?

2 个答案:

答案 0 :(得分:0)

我对Forge知之甚少,所以我建议的这个解决方案不是该层的一部分,也不是Laravel层的一部分,但是如果你能获得命令行访问权限,这可能会有效。

我看过关于这个提及的其他消息“不要关闭终端”这是一种做法的黑客方式,但在Linux中有一个名为nohup的命令你可以找到一些例子,如果你Bing它。或者您可以参考this question

答案 1 :(得分:0)

第一点应该是

php /home/forge/my-site.com/artisan my-command

将它用作守护进程你可以例如

sudo /home/forge/my-site.com/node socket.js