Ruby on rails 服务器初始化错误。。。必须使用;ps aux“grep轨道”;每次

Ruby on rails 服务器初始化错误。。。必须使用;ps aux“grep轨道”;每次,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,每当我使用 rails s 我得到这个信息: => Rails 3.1.0 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2012-08-12 19:57:32] INFO WEBrick 1.3.1 [2012-08-12 19:57:32] INFO ruby 1.9.3 (2012-0

每当我使用

rails s
我得到这个信息:

=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-08-12 19:57:32] INFO  WEBrick 1.3.1
[2012-08-12 19:57:32] INFO  ruby 1.9.3 (2012-04-20) [i686-linux]
[2012-08-12 19:57:32] WARN  TCPServer Error: Address already in use - bind(2)
Exiting
/home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/utils.rb:85:in        `initialize': Address already in use - bind(2) (Errno::EADDRINUSE)
from /home/abhishek/.rvm/rubies/ruby-1.9.3-    p194/lib/ruby/1.9.1/webrick/utils.rb:85:in `new'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/utils.rb:85:in `block in create_listeners'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/utils.rb:82:in `each'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/utils.rb:82:in `create_listeners'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:82:in `listen'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:70:in `initialize'
from /home/abhishek/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:45:in `initialize'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/rack-    1.3.6/lib/rack/handler/webrick.rb:10:in `new'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.3.6/lib/rack/handler/webrick.rb:10:in `run'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.3.6/lib/rack/server.rb:265:in `start'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.1.0/lib/rails/commands/server.rb:70:in `start'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.1.0/lib/rails/commands.rb:54:in `block in <top (required)>'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.1.0/lib/rails/commands.rb:49:in `tap'
from /home/abhishek/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.1.0/lib/rails/commands.rb:49:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

每次

尽管。。命令

rails s -p 4000
工作


我只是好奇是否有任何方法可以让我每次都使用相同的端口。。。因此,我不必每次启动服务器时都使用不同的端口,因为这使我必须一次又一次地重新输入特定的控制器和操作名称

当您运行“rails s”时,默认情况下,它将始终在端口3000上启动服务器。因此,如果您已经有一台服务器在运行,那么它可能在端口3000上运行。您可以通过传递'-p'选项指定不同的端口来启动第二台(第三台、第四台等)服务器

rails s -p 4000

每当您关闭终端时,我建议您首先使用
ctrl+c
关闭服务器,然后关闭终端

这将释放服务器正在使用的端口

现在,当您再次启动服务器时,您可以使用相同的端口,而不需要使用新端口

如果有时未正确释放,请关闭服务器并使用它

使用
killall-9rails杀死服务器

这样,您应该能够在每次启动服务器时使用
rails s


@Andrei的回答是有用且正确的,但我觉得当您需要同时启动多台服务器时,应该使用它,您希望在另一个端口上显式运行服务器。

您可以
killall-9rails
,但这里的主要问题是rails显然已经在运行,而您并不知道它-它是在系统启动时启动的吗?如果是,为什么要重新启动它?在这种情况下,
/etc/init.d/rails restart
不是一个选项(init.d中的脚本的确切名称可能不同,请检查init.d)如何关闭服务器,退出时有错误消息吗?@fvu当我运行
killall-9 rails
时,它给出了这个输出
rails:no process found
@PriteshJ当我完成时,我只关闭终端。。我没有收到任何错误消息。。。对不起,如果我误解了你的问题。。。我是rails的新手,你理解得对。这种情况经常发生吗?这很有效,我尝试了不同的端口号,所有端口号都有效。。谢谢你…谢谢你的回答。。。这正是我需要的。。。我一直以来犯的错误是,我没有使用
Ctrl c
,而是使用
Ctrl z
,我开始使用
Ctrl z
,只是因为一个愚蠢的原因,z比c更接近Ctrl键。。然后我想我忘了我本可以使用
Ctrl c
而只是开始使用“z”来代替。。。谢谢..ctrl+z会停止进程,就像暂停状态一样,这导致了问题,很高兴它有所帮助。
rails s 
rails s -p 4000
rails s -p 4000