1

私は、複数のRailsアプリケーションを実行するようにマシンを構成しなければならないという不幸な立場にあります。もともと、マシンはNginxとrvmとPassengerでセットアップされていました。複数のスタンドアロンの乗客を構成しなければならないのはかなり苦痛のようで、ハックのように感じます。このアプリケーションを稼働させたいので、今は別のポート(8080)でUnicornを使用して実行します。私はどちらを持っていますか?の経験はありません。

私のアプリケーションには、サイトがモバイルデバイスによってアクセスされているかどうかを確認し、別のビューのセットを提供する小さなヘルパーがあります。putsこのヘルパーには、デバッグ行として小さなステートメントが含まれています。

ユニコーンを駆け抜けるとき、putsラインは次のようにバーフします。

Errno::EIO (Input/output error - <STDOUT>):

私が考えることができるのは、STDOUTに書き込むことができないということだけです。Railsアプリが一puts列に並んでいるのを見たことがありません。確かにロガーを使用する必要がありますが、他の場所でこの問題が発生していない場合のUnicornのこの行の問題は何ですか。

4

2 に答える 2

2

EIOエラーは、プロセスがTTYに書き込もうとしているが、TTYがなくなったことを示します。おそらく、ターミナルからUnicornを起動し、デーモン化してから、ターミナルを終了しました。stderr_pathを設定すると、stderr(およびおそらくstdoutも?)がファイルにリダイレクトされるため、役立ちます。

しかし、Phusion Passengerに関しては、複数のスタンドアロンPassengerをセットアップする必要はもうありません。Phusion Passenger 4以降、複数のルビーをサポートしています。

于 2013-03-14T11:19:37.037 に答える
1

stderr_pathconfig/unicorn.rbに行が必要です。そして、そのファイルはユニコーンプロセスによって書き込み可能でなければなりません

于 2013-03-01T13:57:56.273 に答える