无法启动sinatra进程 - eventmachine“no acceptor”

时间:2012-09-30 14:23:00

标签: ruby apache sinatra eventmachine

我有一个Sinatra应用程序,我作为守护程序运行,使用Apache端口转发在端口80和端口7655之间进行调解。这在过去一直运行良好。今天不太好。我无法弄清楚原因。

问题:sudo ruby my_process.rb返回:

/var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:526:in `start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

尝试:更新所有系统包,更新所有宝石。没有帮助(除了来自eventmachine的更明确的错误消息)。

当我跑sudo lsof -i :7655时,我什么也得不回来。当我运行sudo ps aux时,我根本看不到任何 Ruby进程。考虑到错误信息的性质,我发现这是非常不规则的!

那么我找不到端口不可用的原因吗?


此外:

尝试更换端口,没有。我想知道它是否与“localhost”有关?当我ping localhost时,我得到所有丢弃的数据包。这似乎不正常。

1 个答案:

答案 0 :(得分:2)

在主要的Sinatra脚本中提供了最多信息:

set bind: "localhost"
set port: 7655

问题出在localhost上。环回接口配置不正确。 ifconfig显示了lo界面,但尚未为其分配IP 127.0.0.1。要解决此问题,请在shell中运行以下命令(在Ubuntu Linux系统上):

ifdown lo
ifup lo