2012-04-29 71 views
8

虽然试图运行我的config.ru,但我得到一个奇怪的错误,我似乎无法调试称为'无接受者'错误。什么是机架 - “不接受”错误?

完整的错误消息:

eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError) 

有谁知道这是什么错误意味着什么?谢谢。

回答

11

由于@Fivell说,我认为问题在于您之前的thin实例仍在运行。虽然不是从另一个端口开始,但我会建议杀死以前的实例。这样的事情应该做的工作(我在这里重建的问题,所以这是我的最终实际输出):

telemachus caps $ ps ax | grep ruby 
    153 ?? S  7:52.18 ruby /usr/local/bin/djsd 
15801 ?? S  0:00.40 ruby caps.rb # this is our problem, get it's PID 
15973 s000 S+  0:00.00 grep ruby 

telemachus caps $ kill -9 15801 # thin needs -9 - hard to kill 
telemachus caps $ ps ax | grep ruby 
    153 ?? R  7:52.86 ruby /usr/local/bin/djsd 
16057 s000 S+  0:00.00 grep ruby 

取决于你如何开始你的应用程序,你可能需要grep不同的东西(比方说,如果你使用了shotgunrackup)。

+0

是的,这是一个服务器,保释,我的电脑重新启动修复它。 – beakr 2012-04-29 17:45:36

1

我认为问题是,使用端口已绑定(也许你开始你的应用程序更早)尝试改变端口

rackup config.ru -p port #default port is 9292 change to something else 

,或者如果你使用薄

thin start -p port -a 0.0.0.0 -R config.ru #default port is 8080 change to something else 
+0

我已经看到了这个确切的问题许多时候人们只是关闭的,而不是使用'CTRL-C终端窗口'杀死一台正在运行的瘦服务器。如果你关闭窗口,这个过程似乎是僵尸。 – Telemachus 2012-04-29 13:23:38

+0

我个人在前几天=) – Fivell 2012-04-29 13:24:34

0

虽然没有僵尸进程并且端口未绑定,但我得到此错误。

这工作:

thin -p9292 start 

但这并不:

rackup