瘦(捆绑exec瘦)与Circus合作

时间:2014-06-03 14:51:14

标签: python ruby-on-rails thin circusd

我使用Circus作为Rails项目的主管,但是我有一些奇怪的问题让它与Thin,我选择的Ruby Server一起工作。这是我的circus.ini

[circus]
check_delay = 5

[socket:server]
host = 127.0.0.1
port = 8080

[watcher:server]
working_dir = /home/myuser/myproject/myproject
cmd = bundle exec thin start -C /home/myuser/myproject/etc/thin.yml -S $(circus.sockets.server)
use_sockets = True
numprocesses = 3

stdout_stream.class = FileStream
stdout_stream.filename = /home/myuser/myproject/log/circus_server.log
stdout_stream.time_format = %Y-%m-%d %H:%M:%S

[env:server]
RAILS_ENV=production

但是当我开始马戏团(sudo service circus start)时,这就是我在日志上找到的内容:

  

$ cat log / circus.log   2014-06-03 10:42:27马戏团[30987] [INFO]在pid 30987上开始大师   2014-06-03 10:42:27马戏团[30987] [INFO]套接字开始了   2014-06-03 10:42:27马戏团[30987] [警告]错误在'服务器':[Errno 2]没有这样的文件或目录   2014-06-03 10:42:27马戏团[30987] [警告]错误在'服务器':[Errno 2]没有这样的文件或目录   2014-06-03 10:42:27马戏团[30987] [警告]错误在'服务器':[Errno 2]没有这样的文件或目录   2014-06-03 10:42:27马戏团[30987] [警告]错误在'服务器':[Errno 2]没有这样的文件或目录   2014-06-03 10:42:27马戏团[30987] [警告]错误在'服务器':[Errno 2]没有这样的文件或目录   2014-06-03 10:42:27马戏团[30987] [INFO]服务器停止了   2014-06-03 10:42:27马戏团[30987] [INFO] Arbiter现在正在等待命令

事实上,我将cmd更改为python -m SimpleHTTPServer之类的任何其他命令,并且它有效。这里发生了什么?

编辑:当我用--log-level debug运行马戏团时what happens ......我的circus.ini无论copy_env = True如何,我仍然得到相同的输出。

2 个答案:

答案 0 :(得分:1)

我遇到了你所描述的同样问题。

只需在{watcher:NAME]配置中添加copy_env = True

[watcher:server]
working_dir = /home/myuser/myproject/myproject
cmd = bundle exec thin start -C /home/myuser/myproject/etc/thin.yml -S $(circus.sockets.server)
use_sockets = True
numprocesses = 3

stdout_stream.class = FileStream
stdout_stream.filename = /home/myuser/myproject/log/circus_server.log
stdout_stream.time_format = %Y-%m-%d %H:%M:%S

copy_env = True

答案 1 :(得分:1)

你获得的[Errno 2] No such file or directory可能意味着马戏团没有找到bundle。 您可以尝试将RVM bin目录添加到路径中,如下所示:

[env:server]
PATH=$PATH:/path/to/your/rvm/bin

你最需要的文件夹是"包装器",因为它包含ruby和gems脚本,所以试试吧:

PATH=$PATH:/path/to/your/.rvm/wrappers/<your ruby version>