web-dev-qa-db-ja.com

シンWebサーバー: `start_tcp_server ':gitブランチチェックアウト後にアクセプター(RuntimeError)なし

A Rails 3.2.0アプリ。ローカルおよびHeroku杉スタックの両方でThin Webサーバーで正常に動作します。

後:

$ git branch work
$ git checkout work
$ Rails server

私は得る:

=> Booting Thin
=> Rails 3.2.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop
Exiting
/Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:572:in `start_server'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/backends/tcp_server.rb:16:in `connect'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/backends/base.rb:53:in `block in start'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `call'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in `start'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/thin-1.3.1/lib/thin/server.rb:159:in `start'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/handler/thin.rb:13:in `run'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/rack-1.4.1/lib/rack/server.rb:265:in `start'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/railties-3.2.0/lib/Rails/commands/server.rb:70:in `start'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/railties-3.2.0/lib/Rails/commands.rb:55:in `block in <top (required)>'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/railties-3.2.0/lib/Rails/commands.rb:50:in `tap'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/gems/railties-3.2.0/lib/Rails/commands.rb:50:in `<top (required)>'
from script/Rails:6:in `require'
from script/Rails:6:in `<main>'

また、私がするとき:

Sudo bundle exec Rails server thin -p 3000

私は得る:

/Users/peter/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/site_Ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /Users/peter/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/site_Ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /Users/peter/.rvm/rubies/Ruby-1.9.3-p125/lib/Ruby/site_Ruby/1.9.1/rubygems.rb:1210:in `gem'
from /Users/peter/.rvm/gems/Ruby-1.9.3-p125/bin/bundle:18:in `<main>'

Bundler 1.0.22がインストールされています。更新してインストールしました。何も機能しないようです。何か案は?

110
maeseele

これは私のために動作します。サーバーを見つける(ゾンビ?)(サーバーを実行している端末を終了するときに発生する可能性があります)

$ ps ax | grep Rails

次のようなものが返される場合:

33467 s002 S+ 0:00.00 grep Rails
33240 s003 S+ 0:15.05 /Users/Arta/.rbenv/versions/1.9.2-p290/bin/Ruby script/Rails s -p 3000

それを殺し、新たに実行します:

$ kill -9 33240
$ Rails s
226
Arta

ポート3000はすでに使用されている可能性があります。 http://mrjaba.posterous.com/starttcpserver-no-acceptor-runtimeerror を見てください

63
TuteC

ポートをロックしている他のプロセスがある場合、次のようにどのPIDがあるかを確認できます。

$ lsof -i :3000
COMMAND     PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Passenger 40466 josh    5u  IPv4 0x7cae9332073ed4df      0t0  TCP *:hbci (LISTEN)
Passenger 40467 josh    5u  IPv4 0x7cae9332073ed4df      0t0  TCP *:hbci (LISTEN)

次に、単にそれを殺します:

$ kill -9 40466
$ kill -9 40467
46
Joshua Muheim

pgrep Ruby実行中のサーバーを確認してから

kill -9 serverNumber

;)

46
Alborz

rvmsudo Rails server thin -p 3000

私のために

8
wantrapreneur

このエラーは、 Rails-dev-box with Rails inside。

Port 3000 in the Host computer is forwarded to port 3000 in the virtual machine. 
Thus, applications running in the virtual machine can be accessed via 
localhost:3000 in the Host computer.

Vagrantからログアウトされ、シャットダウンされます。

vagrant@Rails-dev-box:/vagrant/Rails$ exit
$ vagrant halt

それは私を助けました。

6
ExiRe

私はすでに別の端末でRailsを実行していたため、このエラーが発生しました。他のプロジェクトを閉じると、これが修正されました。

5
aarona

私は休暇からオフィスに戻った後、同様の問題に遭遇しました。次のようにローカルIPでサーバーを実行します。

Rails s thin -b <my_ip>

問題は、私のIPが変更されたことで、新しいIPを使用する必要がありました。

2
pepe

これをターミナルで実行します

Sudo netstat -lpn |grep Rails

その後

Sudo kill <job id>
2
Sam