【问题标题】:can't open rails server无法打开rails服务器
【发布时间】:2011-08-11 20:00:48
【问题描述】:

我不知道我做了什么。我想我更新了我的 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)

我将重新启动控制台并运行 rails server,它会在几分钟内正常工作,但随后会停止响应,如果我重新启动 rails server,它会再次出现该错误。我尝试在不同的端口(rails s -p 9191)上运行,它给了我同样的问题。

任何想法我做错了什么?谢谢大家

【问题讨论】:

    标签: ruby-on-rails ruby webrick


    【解决方案1】:

    在其他端口上运行它:

    rails s -p 3001
    

    所以它会加载到localhost:3001

    或杀死所有 ruby​​ 进程:

    killall ruby
    

    然后运行rails s

    【讨论】:

    • 当我尝试 rails s -p 3001 时,它可以工作,但是如果我重新启动它并再次运行它,我会收到错误“已在使用 - bind(2) Errno::EADDRINUSE).. ..” 我也试过 killall ruby​​ 但没有用。这很奇怪,因为我也在我的另一台笔记本电脑上试过它,它给了我同样的错误。和我的路由器有关系吗?
    • 是的 - 你的 localhost 环境看起来有点不对劲
    • mac OS X (10.6.8)。我会在不同的端口上启动 Rails 服务器,不会给我错误,然后立即重新启动它,它会给我错误。
    • 所以我认为是网络问题。尝试断开网络连接并离线运行 rails
    • 是的,尝试离线进行。仍然是同样的错误。这是运行 Rails 3.0.9 和 ruby​​ 1.9.2p290 的版本(2011-07-09 修订版 32553)[x86_64-darwin10.8.0]
    【解决方案2】:

    我认为您的 Rails 服务器在您关闭后会继续运行。你可以试试

    ps aux | grep ruby
    

    查看 pid 然后杀死那个 pid

    kill -9 <pid>
    

    现在你可以使用

    重启你的服务器了
    rails s
    

    注意:从下一次开始尝试使用 Ctrl D 来终止 Rails 服务器。这可能会有所帮助

    【讨论】:

      【解决方案3】:

      我也遇到了这个问题,因为 ruby​​ 实例没有正确终止。我们可以通过 pid 终止在后台运行的进程。

      lsof -wni tcp:3000
      

      它显示所有正在运行的 ruby​​ pid。并终止该 pid。

      kill -9 PID
      

      或者使用

      killall ruby
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-12
        • 1970-01-01
        • 2012-08-15
        • 2021-04-12
        • 2016-12-10
        • 2021-06-22
        • 2013-02-16
        • 2016-05-24
        相关资源
        最近更新 更多