【问题标题】:What is a Rack - "no acceptor" error?什么是机架 - “无接受器”错误?
【发布时间】:2012-05-09 11:35:42
【问题描述】:

在尝试运行我的 config.ru 时,我遇到了一个我似乎无法调试的奇怪错误,称为“无接受器”错误。

完整的错误信息:

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

有谁知道这个错误是什么意思?谢谢。

【问题讨论】:

    标签: ruby rack thin


    【解决方案1】:

    正如@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 以获取不同的信息(例如,如果您使用的是 shotgunrackup)。

    【讨论】:

    • 是的,它是一个服务器保释,我的电脑重新启动修复它。
    【解决方案2】:

    我认为问题在于使用端口已经绑定(也许您之前启动了您的应用程序)尝试更改端口

    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 来杀死正在运行的瘦服务器时,我已经多次看到这个确切的问题。如果关闭窗口,进程似乎会变成僵尸。
    • 我前几天亲自做过=)
    【解决方案3】:

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

    这行得通:

    thin -p9292 start
    

    但这不是:

    rackup
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-22
      • 2021-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 2012-03-03
      相关资源
      最近更新 更多