2011-08-11 13 views
14

私は何をしたのですか? Ruby on Railsを更新したと思います。それを更新した後、私は$ rails serverを実行しているときに常にエラーになります。レールサーバを開くことができません

出力は、私は、コンソールと実行レールサーバーを再起動してしまうと、それは数分のカップルのため正常に動作だろうが、それが応答を停止だろうと私はレールのサーバーを再起動した場合、それは私にそのエラーを与えるだろう

ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/utils.rb:73:in `initialize': Address already in use - bind(2) (Errno::EADDRINUSE) 

です再び。私は別のポート(レールs -p 9191)で走ろうとしましたが、それは私に同じ問題をもたらします。

私は間違っていましたか? thnx他のポート上の連中

答えて

35

実行し、それを:

rails s -p 3001 

ので、それはlocalhost:3001

にロードしたり、すべてのルビープロセスを殺す:その後、

killall ruby 

rails s

+0

を使用しますが、私はそれを再起動して、もう一度それを実行する場合、私は既に使用中」エラーになるだろう - バインド(2) Errno :: EADDRINUSE).... "私もkillallルビーを試しましたが、動作しませんでした。私も他のラップトップで試してみましたが、それは私に同じエラーを与えています。それは私のルータや何かと関係がありますか? – hlim

+0

あなたはlinux/mac/winにいますか? – fl00r

+0

とyes - 'localhost'環境で何かwrogのように見える – fl00r

22
を実行します

私は何とかあなたのレールサーバーは、あなたはそれを閉じます。以降Ctrlキーを使用してみてください、次回からは:

ps aux | grep ruby 

はpidを参照し、そのPID

kill -9 <pid> 

を殺すようあなたは今、あなたは

rails s 

注意を使用してサーバーを再起動することができます試すことができますレールサーバを終端するためのD。それは助けるかもしれません

1

私はあまりにもルビーのインスタンスのためにそれがすべて正常に終了していないために問題に直面しました。私たちはpidsでバックグラウンドで実行されているプロセスを終了することができます。

lsof -wni tcp:3000 

ruby​​の実行中のすべてのpidを表示し、そのpidを終了します。

kill -9 PID 

または私はレールの-p 3001を試したとき、それを動作

killall ruby 
関連する問題