无法启动sinatra进程 - eventmachine"no acceptor"

mli*_*bby 6 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)
Run Code Online (Sandbox Code Playgroud)

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

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

那么在找出端口不可用的原因时我有什么遗漏?


也:

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

mli*_*bby 3

事实证明,Sinatra 主脚本中的这两行提供了最多的信息:

set bind: "localhost"
set port: 7655
Run Code Online (Sandbox Code Playgroud)

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

ifdown lo
ifup lo
Run Code Online (Sandbox Code Playgroud)