ruby-on-rails-3 - deploy - ruby on rails passenger
Servidor web delgado: `start_tcp_server '': no aceptador(RuntimeError) después de la extracción de git branch (9)
Una aplicación Rails 3.2.0, que funciona bien con el servidor web Thin, tanto localmente como en la pila de cedro Heroku.
Después:
$ git branch work
$ git checkout work
$ rails server
Yo obtengo:
=> 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>''
Además, cuando lo hago:
sudo bundle exec rails server thin -p 3000
Yo obtengo:
/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>''
Tengo el bundler 1.0.22 instalado. Actualizado e instalado. Nada parece funcionar. ¿Algunas ideas?
servidor rvmsudo rails thin -p 3000
Lo hace por mi
Ejecute esto en la terminal
sudo netstat -lpn |grep rails
Y entonces
sudo kill <job id>
El puerto 3000 ya puede estar en uso. Mira http://mrjaba.posterous.com/starttcpserver-no-acceptor-runtimeerror
Esto funciona para mí Encontrar (¿zombie?) Servidor (puede suceder al salir de la terminal con el servidor ejecutándose):
$ ps ax | grep rails
Si devuelve algo como:
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
matarlo, y ejecutar de nuevo:
$ kill -9 33240
$ rails s
Me encontré con un problema similar después de regresar a la oficina de vacaciones. Ejecuto mi servidor en la IP local como:
rails s thin -b <my_ip>
El problema era que mi IP había cambiado, solo necesitaba usar la nueva.
Si hay algún otro proceso que bloquee el puerto, puedes averiguar qué PID tiene así:
$ 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)
Entonces simplemente mátalo / ellos:
$ kill -9 40466
$ kill -9 40467
Tengo este error porque estaba ejecutando rails-dev-box con Rails dentro de él.
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.
Así que se desconectó de Vagrant y lo cerró:
vagrant@rails-dev-box:/vagrant/rails$ exit
$ vagrant halt
Eso me ayudó.
Tuve este error porque ya estaba usando raíles en otra terminal. El cierre de mi otro proyecto solucionó esto.
pgrep ruby
para ver qué servidores se están ejecutando y luego
kill -9 serverNumber
;)