2012-09-30 11 views
6

Apacheポート転送を使用してポート80とポート7655の間で仲介するSinatraアプリケーションをデーモンとして実行しています。今日はそうではありません。なぜ私は理解できません。はsinatraプロセスを開始できません - イベントマシン「アクセプタなし」

問題:sudo ruby my_process.rbリターン:

/var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError) 

が試さ:すべてのシステムパッケージを更新し、すべての宝石を更新します。ヘルプはありません(イベントマシンからのより明確なエラーメッセージを除く)。

sudo lsof -i :7655を実行すると、何も戻ってこない。私がsudo ps auxを実行すると、がありません。 Rubyのプロセスはまったくありません。エラーメッセージの性質上、私は非常に不規則に見えます!

ポートが利用できない理由を見つけ出すには、何か不足していますか?また


しようとしたポートの変更、何もありません。私はそれが "localhost"に関連しているのだろうか?私がlocalhostにpingを実行すると、すべてのパケットが破棄されます。それは普通のようではありません。問題は、ローカルホストとあった

set bind: "localhost" 
set port: 7655 

+1

正確に 'my_process.rb'を実行するために使用しているものは何ですか? – pje

+0

申し訳ありませんが、 'sudo ruby​​ my_process.rb' – mlibby

答えて

2

は、メイン・シナトラスクリプトでこれらの2行は、ほとんどの情報を提供してオンにします。ループバックインターフェイスが正しく設定されていませんでした。 ifconfigloインターフェイスを示しましたが、IP 127.0.0.1は割り当てられていませんでした。解決するには、シェル(Ubuntu Linuxシステム上)で以下のコマンドを実行してください:

ifdown lo 
ifup lo 
+0

を読んで、この回答についてもう少し詳細を教えてください。それが解決策なら、どこに "ifdown lo"と "ifup lo"を入れましたか?私は何をするか分かりません... – BrainLikeADullPencil

+0

私は答えを編集し、それが助けてくれることを願っています。 – mlibby

+0

@BrainLikeADullPencil: "ifdown"と "ifup"は、 "ループバック"( "ソフトウェア")ネットワークアダプタを起動および停止するLinux/MacOSコマンドです。彼らはあなたの[質問](http://stackoverflow.com/questions/14049765/port-in-use-when-not-using-a-port)に必要ではないはずです*。重要なことは、あなたのSinatraスクリプトの "bind"アドレスを変更して、現在ポート#4567にある "port in use"エラーに役立つかどうかを確認することです。 – paulsm4

関連する問題