14

我不知道我做了什么。我想我更新了我的 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 服务器,它会在几分钟内正常工作,但随后它会停止响应,如果我重新启动 rails 服务器,它会再次给我那个错误。我尝试在不同的端口(rails s -p 9191)上运行,它给了我同样的问题。

任何想法我做错了什么?伙计们

4

3 回答 3

34

在其他端口上运行它:

rails s -p 3001

所以它会加载localhost:3001

或杀死所有 ruby​​ 进程:

killall ruby

然后运行rails s

于 2011-08-11T20:02:46.567 回答
22

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

ps aux | grep ruby

查看 pid 然后杀死该 pid

kill -9 <pid>

现在您可以使用重新启动服务器

rails s

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

于 2011-08-12T06:44:11.880 回答
1

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

lsof -wni tcp:3000

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

kill -9 PID

或使用

killall ruby
于 2017-01-29T14:52:08.777 回答