我使用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
如何,我仍然得到相同的输出。
答案 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>