我在Cloud9上启动我的开发服务器时出现此错误:
`trimakas:~/workspace (master) $ rails s -p $PORT -b $IP
=> Booting Puma
=> Rails 4.2.3 application starting in development on http://0.0.0.0:8080
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[39230] Puma starting in cluster mode...
[39230] * Version 3.4.0 (ruby 2.3.0-p0), codename: Owl Bowl Brawl
[39230] * Min threads: 5, max threads: 5
[39230] * Environment: development
[39230] * Process workers: 2
[39230] * Preloading application
[39230] * Listening on tcp://0.0.0.0:8080
Exiting
/usr/local/rvm/gems/ruby-2.3.0/gems/puma-3.4.0/lib/puma/binder.rb:255:in
`initialize': Address already in use - bind(2)
for "0.0.0.0" port 8080 (Errno::EADDRINUSE)`
然后我试着找出它用于的原因:
lsof -wni tcp:8080
但没有发现??!
然后我绝对没有运气尝试下面的事情:
puma -C config/puma.rb
rails server -b http://0.0.0.0:8080
rails s -b 0.0.0.0 -p 8080
rails s -p $PORT -b $IP
我的puma.config
文件很简单,如下所示:
environment 'development'
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup DefaultRackup
port 8080
environment 'development'
daemonize true
on_worker_boot do
ActiveSupport.on_load(:active_record) do
ActiveRecord::Base.establish_connection
end
end
由于 托德
答案 0 :(得分:1)
有完全相同的问题。
已经给出了解决方案here。
你必须杀死所有ruby进程:
killall ruby
之后只需重新启动服务器
rails server -b $IP -p $PORT
如果您还没有找到解决方案,希望它有所帮助。