在尝试运行我的config.ru时,我遇到一个奇怪的错误,我似乎无法调试称为“无接受者”错误。
完整的错误消息:
eventmachine.rb:572:in `start_tcp_server': no acceptor (RuntimeError)
有谁知道这个错误意味着什么?感谢。
答案 0 :(得分:12)
正如@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
查看不同的内容(例如,如果您使用shotgun
或rackup
)。
答案 1 :(得分: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
答案 2 :(得分:0)
虽然没有僵尸进程且端口没有绑定,但我收到此错误。
这有效:
thin -p9292 start
但这不是:
rackup