使用mongrel_rails在rails app上启动ruby时,为什么会出现错误

尝试使用rails应用程序启动ruby时,为什么会出现以下错误

  mongrel_rails开始 

 
 C:\ RailsTest \ cookbook2> mongrel_rails启动
 **警告:Win32不支持守护程序模式。
 **守护,任何打开的文件都已关闭。 查看log / mongrel.pid和log / mongr
 el.log获取信息。
 **启动Mongrel听取0.0.0.0:3000
 C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../ LIB /杂种/吨
 cphack.rb:12:在`initialize_without_backlog'中:每个套接字地址只有一个用法
通常允许使用ess(协议/网络地址/端口)。  -  bind(2)(Errno :: EAD
 DRINUSE)
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / tcphack.rb:12:在`initialize'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel.rb:93:在'new'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel.rb:93:在`initialize'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / configurator.rb:139:在'new'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / configurator.rb:139:在`listener'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon
 grel_rails:99:在'cloaker_'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / configurator.rb:50:在`call'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / configurator.rb:50:在`initialize'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon
 grel_rails:84:在'new'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon
 grel_rails:84:在'run'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin /../
 lib / mongrel / command.rb:212:在'run'中
        来自c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon
 grel_rails:281
        来自c:/ ruby​​ / bin / mongrel_rails:19:在'load'中
        来自c:/ ruby​​ / bin / mongrel_rails:19

您已经有一个进程侦听端口3000(mongrel的默认端口)。

尝试:

mongrel_rails start -p 3001 

看看你是否得到了类似的错误。

如果您尝试安装多个Rails应用程序,则需要将每个mongrel分配到一个单独的端口并相应地编辑apache conf。

如果你不想这样做,杀死所有mongrels的最直接的方法是打开Windows任务管理器并杀死所有’ruby’进程。

请注意,如果您将mongrel作为自动启动的服务安装

 mongrel_rails install::service ... 

…ruby过程将自动重新生成。 在这种情况下,您必须通过Windows服务面板编辑流程属性。 如果您需要更多信息,请告诉我。

我自己不在windows上使用mongrel,但我猜这个错误相当于Linux的“使用中的端口”错误。 您是否尝试将服务器绑定到其他已经在侦听的端口?

在Windows上,我找到了两种可能的方法来解决此问题:

  1. 解决方法:在另一个端口启动mongrel Web服务器
  2. 解决方案:在任务管理器中找到ruby.exe进程并完成它