【发布时间】:2012-05-09 11:35:42
【问题描述】:
在尝试运行我的 config.ru 时,我遇到了一个我似乎无法调试的奇怪错误,称为“无接受器”错误。
完整的错误信息:
eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)
有谁知道这个错误是什么意思?谢谢。
【问题讨论】:
在尝试运行我的 config.ru 时,我遇到了一个我似乎无法调试的奇怪错误,称为“无接受器”错误。
完整的错误信息:
eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)
有谁知道这个错误是什么意思?谢谢。
【问题讨论】:
正如@Fivell 所说,我认为问题在于您之前的@987654321@ 实例仍在运行。我建议不要从另一个端口开始,而是建议终止前一个实例。像这样的东西应该可以完成工作(我在这里重新创建了问题,所以这是我的真实输出):
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 以获取不同的信息(例如,如果您使用的是 shotgun 或 rackup)。
【讨论】:
我认为问题在于使用端口已经绑定(也许您之前启动了您的应用程序)尝试更改端口
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
【讨论】:
CTRL-C 来杀死正在运行的瘦服务器时,我已经多次看到这个确切的问题。如果关闭窗口,进程似乎会变成僵尸。
虽然没有僵尸进程并且端口未绑定,但我收到此错误。
这行得通:
thin -p9292 start
但这不是:
rackup
【讨论】: