Why do I get following error when trying to start a ruby on rails application with
尝试使用rails应用程序启动ruby时,为什么会出现以下错误
mongrel_rails start?
C:\RailsTest\cookbook2>mongrel_rails start ** WARNING: Win32 does not support daemon mode. ** Daemonized, any open files are closed. Look at log/mongrel.pid and log/mongr el.log for info. ** Starting Mongrel listening at 0.0.0.0:3000 c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../lib/mongrel/t cphack.rb:12:in `initialize_without_backlog': Only one usage of each socket addr ess (protocol/network address/port) is normally permitted. - bind(2) (Errno::EAD DRINUSE) from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/tcphack.rb:12:in `initialize' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel.rb:93:in `new' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel.rb:93:in `initialize' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:139:in `new' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:139:in `listener' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:99:in `cloaker_' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:50:in `call' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/configurator.rb:50:in `initialize' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:84:in `new' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:84:in `run' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ lib/mongrel/command.rb:212:in `run' from c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon grel_rails:281 from c:/ruby/bin/mongrel_rails:19:in `load' from c:/ruby/bin/mongrel_rails:19
3 个解决方案
#1
2
You already have a process listening on port 3000 (the default port for mongrel).
您已经有一个进程侦听端口3000(mongrel的默认端口)。
Try:
mongrel_rails start -p 3001
and see whether you get a similar error.
看看你是否得到了类似的错误。
If you're trying to install more than one Rails app, you need to assign each mongrel to a separate port and edit you apache conf accordingly.
如果您尝试安装多个Rails应用程序,则需要将每个mongrel分配到一个单独的端口并相应地编辑apache conf。
If you not trying to do that, the most direct way of killing all mongrels is to open windows task manager and kill all the 'ruby' processes.
如果你不想这样做,杀死所有mongrels的最直接的方法是打开Windows任务管理器并杀死所有'ruby'进程。
Note that if you have mongrel installed as a service that starts automatically
请注意,如果您将mongrel作为自动启动的服务安装
mongrel_rails install::service ...
...the ruby process will regenerate automatically. In that case, you'll have to edit the process properties through the windows services panel. Let me know if you need more info.
...红宝石过程将自动重新生成。在这种情况下,您必须通过Windows服务面板编辑流程属性。如果您需要更多信息,请告诉我。
#2
2
I don't use mongrel on windows myself, but I guess that error is the equivalent of Linux' "port in use" error. Are you trying to bind the server to a port where something else is already listening?
我自己不在windows上使用mongrel,但我猜这个错误相当于Linux的“使用中的端口”错误。您是否尝试将服务器绑定到其他已经在侦听的端口?
#3
0
On Windows, I found two possible ways for fixing this issue:
在Windows上,我找到了两种可能的方法来解决此问题:
- Work around: Start the mongrel web server in another port
- Solution: Find the ruby.exe process in your task manager and finish it
解决方法:在另一个端口启动mongrel Web服务器
解决方案:在任务管理器中找到ruby.exe进程并完成它
#1
2
You already have a process listening on port 3000 (the default port for mongrel).
您已经有一个进程侦听端口3000(mongrel的默认端口)。
Try:
mongrel_rails start -p 3001
and see whether you get a similar error.
看看你是否得到了类似的错误。
If you're trying to install more than one Rails app, you need to assign each mongrel to a separate port and edit you apache conf accordingly.
如果您尝试安装多个Rails应用程序,则需要将每个mongrel分配到一个单独的端口并相应地编辑apache conf。
If you not trying to do that, the most direct way of killing all mongrels is to open windows task manager and kill all the 'ruby' processes.
如果你不想这样做,杀死所有mongrels的最直接的方法是打开Windows任务管理器并杀死所有'ruby'进程。
Note that if you have mongrel installed as a service that starts automatically
请注意,如果您将mongrel作为自动启动的服务安装
mongrel_rails install::service ...
...the ruby process will regenerate automatically. In that case, you'll have to edit the process properties through the windows services panel. Let me know if you need more info.
...红宝石过程将自动重新生成。在这种情况下,您必须通过Windows服务面板编辑流程属性。如果您需要更多信息,请告诉我。
#2
2
I don't use mongrel on windows myself, but I guess that error is the equivalent of Linux' "port in use" error. Are you trying to bind the server to a port where something else is already listening?
我自己不在windows上使用mongrel,但我猜这个错误相当于Linux的“使用中的端口”错误。您是否尝试将服务器绑定到其他已经在侦听的端口?
#3
0
On Windows, I found two possible ways for fixing this issue:
在Windows上,我找到了两种可能的方法来解决此问题:
- Work around: Start the mongrel web server in another port
- Solution: Find the ruby.exe process in your task manager and finish it
解决方法:在另一个端口启动mongrel Web服务器
解决方案:在任务管理器中找到ruby.exe进程并完成它