1

Rails プロジェクトのスーパーバイザーとして Circus を使用していますが、選択した 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 2014-06-03 10:42:27 circus[30987] [INFO] ソケット開始 2014- 06-03 10:42:27 サーカス [30987] [警告] 「サーバー」のエラー: [Errno 2] そのようなファイルまたはディレクトリはありません 2014-06-03 10:42:27 サーカス [30987] [警告] エラー ' server': [Errno 2] No such file or directory 2014-06-03 10:42:27 circus [30987] [WARNING] error in 'server': [Errno 2] No such file or directory 2014-06-03 10 :42:27 サーカス [30987] [警告] 'サーバー' のエラー: [Errno 2] そのようなファイルまたはディレクトリはありません 2014-06-03 10:42:27 サーカス [30987] [警告] 'サーバー' のエラー: [ Errno 2] No such file or directory 2014-06-03 10:42:27 circus[30987] [INFO] サーバーが停止しました 2014-06-03 10:42:27 circus[30987] [INFO] アービターがコマンドを待機しています

実際のところ、cmd他のコマンドに変更したpython -m SimpleHTTPServerところ、うまくいきました。ここで何が起こっているのですか?

編集:これは、私が circusd を実行するとどうなるか--log-level debugです... circus.ini に関係なく、同じ出力が得られますcopy_env = True

4

2 に答える 2

1

[Errno 2] No such file or directoryあなたが得ているのは、おそらくサーカスが を見つけていないことを意味します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 に答える