Rails Rails server 本地无法被访问和停止

larryzhao · 2013年09月11日 · 最后由 kenshin54 回复于 2013年09月11日 · 5932 次阅读

环境是 Mac OSX Mountain Lion, 10.8.4 Build 12E55, ruby 1.9.3-p327-falcon, Rails 3.2.14

之前都很好, 昨天突然出现了, 启动 rails s 之后, 浏览器没法访问, Ctrl-C 无法终止..

rails s 启动之后, 看上去一切正常 → rails s WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.1 => Booting Thin => Rails 3.2.14 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.5.1 codename Straight Razor) Maximum connections set to 1024 Listening on 0.0.0.0:3000, CTRL+C to stop

但我用浏览器访问 127.0.0.1:3000 的话, 浏览器就一直在 Loading 的转转转, console 里也什么都没有, 就好像 rails server 接收不到这个 request 一样

然后我 telnet 了一下端口, 看上去也是正常的.

→ telnet 127.0.0.1 3000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'

如果我用 Ctrl-C 结束 rails s 也结束不了:

→ rails s WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.1 => Booting Thin => Rails 3.2.14 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.5.1 codename Straight Razor) Maximum connections set to 1024 Listening on 0.0.0.0:3000, CTRL+C to stop ^C>> Stopping ... ^C>> Stopping ... ^C>> Stopping ... ^C>> Stopping ... ^C>> Stopping ... ^C>> Stopping ...

有人碰到过么? 怎么来找到问题在哪儿啊?

共收到 18 条回复

好诡异。。

杀进程。然后rails s 或者做一个stop脚本。内容如下 kill -9 `cat tmp/pids/server.pid`

穷人fedora下的脚本。mac同志请自行修改

#2楼 @jarorwar 怎么样停止他我会, 并且杀掉之后还是一样的问题, 主要是不能访问我就没法干活了, 我觉得不能stop和他不能接受访问应该是同一个问题, 请大家更关注为什么出现这个诡异情况把.

#3楼 @larryzhao 新建一个空项目也会这样?

#3楼 @larryzhao 每次我执行ctrl +z(ctrl+c 也是)的时候总是不能结束进程,也是无法访问,所以。我就用这个来stop,如果不符合你的实际情况,你就自行解决把。你的实际情况是什么样我也不清楚

#5楼 @jarorwar 我 kill 掉再起也还是无法访问的, 哎

#6楼 @larryzhao kill掉看看进程还在么?确认真的kill掉了。 无法访问看看你的本地环境,端口,hosts,乱七八糟。这个情况比较复杂。

#7楼 @jarorwar kill 掉进程就不在了, 端口测试过ok的,帖子里面有.

#4楼 @kenshin54 空项目正常...尼玛...

换个server,比如 webrick 呢?

#9楼 @larryzhao 那就项目的问题了,排查下有没有更新啥gem,或者改过啥代码,导致卡死,以前我也出现过,后面都debug到rails整个启动流程,才定位出原因。

#10楼 @lgn21st 这个我试过, webrick也一样.

#11楼 @kenshin54 恩, 但很奇怪的是, 我最早出现的时候就怕是这个问题, 就 git rollback 试验了之前的版本也是一样的问题, 然后我的 co-worker 全都ok, 才来发帖的, 真是尴尬

#13楼 @larryzhao 那么神奇,整个重新从git仓库拉一份代码下来试过没?

感谢大家.

#14楼 @kenshin54 终于找到问题所在了, co-worker 写出来了个死循环...

下面是如何找到的: @lgn21st 建议之后我又换成 Webrick 想试一下, 然后问题依旧, 我就 Ctrl-C 尝试停止 Webrick, 还好 Webrick 能成功停止并且把之前的 output 都吐出来了, 才发现这个死循环.

#15楼 @larryzhao 那为啥co-worker都是ok的?

#16楼 @kenshin54 正常情况走不到那个分支..., 这个分支完全是为了保特殊情况app还可以正常跑, 没测试完全啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册