Eventmachine start_tcp_server没有接受器 - 端口已被占用或需要root权限 (运行时错误)

6

我已经三天没能够运行我的本地服务器了。重启电脑也没有帮助。有几次,尝试了40-50次后,它突然工作了 - 我无法弄清原因。我曾尝试使用不同的端口,那时可以工作,但自那以后,任何端口都无法工作。每次尝试运行我的Rails服务器时,我都会得到以下错误信息。

/Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:526:in `start_server'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/tcp_server.rb:16:in `connect'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/base.rb:55:in `block in start'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `call'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `run_machine'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/eventmachine-1.0.5/lib/eventmachine.rb:187:in `run'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/backends/base.rb:63:in `start'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/thin-1.5.1/lib/thin/server.rb:159:in `start'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/rack-1.6.1/lib/rack/handler/thin.rb:19:in `run'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/rack-1.6.1/lib/rack/server.rb:286:in `start'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/server.rb:80:in `start'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:80:in `block in server'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
    from /Users/colmtuite/.rvm/gems/ruby-2.2.0/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

当我运行ps aux | grep rails时,会得到以下输出:

colmtuite        6422   0.0  0.0  2441988    668 s002  S+    2:44am   0:00.00 grep rails

当我运行ps aux | grep ruby时,我会得到以下输出:
colmtuite       13305   0.0  0.0  2423356    200 s000  R+    8:15pm   0:00.00 grep ruby

我的端口是不是因为某些原因关闭了?

如果你使用sudo运行它会发生什么? - Sunil D.
对于 'sudo ps aux | grep ruby',我得到了以下输出:colmtuite 17286 0.0 0.0 2441988 676 s000 S+ 1:55am 0:00.00 grep ruby。 - colmtuite
不,我的意思是尝试使用sudo命令运行本地服务器 :) 然后你就会知道问题是否与root权限或端口被占用有关。 - Sunil D.
当我运行'gem list'时,它列出了'railties (4.2.0)'... - colmtuite
尝试运行 "bundle update" 命令以获取最新的 gem 包,然后再次尝试。 - Vladan Markovic
显示剩余3条评论
1个回答

13

我也遇到过同样的问题

这对我有用

$ ps ax | grep rails

然后使用进程ID杀死进程

$ kill -9 [process Id]

例子

$ kill -9 20496

重新启动服务器


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接