1

我使用 Circus 作为 Rails 项目的主管,但我遇到了一些奇怪的问题,无法让它与我选择的 Ruby 服务器 Thin 一起工作。这是我的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 circus[30987] [INFO] 在 pid 30987 上启动 master 2014-06-03 10:42:27 circus[30987] [INFO] 套接字开始于 2014- 06-03 10:42:27 circus[30987] [WARNING] 'server' 中的错误:[Errno 2] 没有这样的文件或目录 2014-06-03 10:42:27 circus[30987] [WARNING] 错误server':[Errno 2] 没有这样的文件或目录 2014-06-03 10:42:27 circus [30987] [WARNING] 'server' 中的错误:[Errno 2] 没有这样的文件或目录 2014-06-03 10 :42:27 circus[30987] [WARNING] 'server' 中的错误:[Errno 2] 没有这样的文件或目录 2014-06-03 10:42:27 circus[30987] [WARNING] 'server' 中的错误:[ Errno 2] 没有这样的文件或目录 2014-06-03 10:42:27 circus[30987] [INFO] 服务器已停止 2014-06-03 10:42:27 circus[30987] [INFO] 仲裁器现在正在等待命令

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

编辑:当我运行 circusd 时会发生这种情况......无论在我的 circus.ini 中--log-level debug如何,我仍然得到相同的输出。copy_env = True

4

2 回答 2

1

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

只需在copy_env = True您的 [watcher:NAME] 配置中添加一个:

[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
于 2014-06-05T02:34:33.573 回答
1

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

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

您最可能需要的文件夹是“wrappers”,因为它包含 ruby​​ 和 gems 脚本,所以试试吧:

PATH=$PATH:/path/to/your/.rvm/wrappers/<your ruby version>
于 2014-06-05T18:04:39.643 回答