Ruby Sinatra在ctrl-c之后重新启动Webrick服务器

Ruby Sinatra在ctrl-c之后重新启动Webrick服务器,ruby,sinatra,webrick,Ruby,Sinatra,Webrick,有人能帮我解决这里可能出现的问题吗 问题是您没有正确使用。与其要求sinatra并从sinatra::Application继承,不如要求sinatra/base并从sinatra::base继承 发生的事情就是这样。您需要普通的sinatra,这反过来又需要sinatra/main。此文件(除非禁用)。但是,您也可以显式地调用run在您自己的代码中,因此服务器会因为您的调用而启动,然后当您退出时,at_exit处理程序会再次启动服务器。需要sinatra/base不会在退出时启动内置服务器,因

有人能帮我解决这里可能出现的问题吗

问题是您没有正确使用。与其要求
sinatra
并从
sinatra::Application
继承,不如要求
sinatra/base
并从
sinatra::base
继承

发生的事情就是这样。您需要普通的
sinatra
,这反过来又需要
sinatra/main
。此文件(除非禁用)。但是,您也可以显式地调用
run
在您自己的代码中,因此服务器会因为您的调用而启动,然后当您退出时,
at_exit
处理程序会再次启动服务器。需要
sinatra/base
不会在退出时启动内置服务器,因此您只需要自己显式调用
run

LM-BOS-00715009:server joshughes$ ruby test.rb 
[2013-04-19 16:07:48] INFO  WEBrick 1.3.1
[2013-04-19 16:07:48] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
== Sinatra/1.4.2 has taken the stage on 22340 for development with backup from WEBrick
[2013-04-19 16:07:48] INFO  WEBrick::HTTPServer#start: pid=63798 port=22340
^C
== Sinatra has ended his set (crowd applauds)
[2013-04-19 16:07:56] INFO  going to shutdown ...
[2013-04-19 16:07:56] INFO  WEBrick::HTTPServer#start done.
[2013-04-19 16:07:56] INFO  WEBrick 1.3.1
[2013-04-19 16:07:56] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from WEBrick
[2013-04-19 16:07:56] INFO  WEBrick::HTTPServer#start: pid=63798 port=4567
^C
require'sinatra/base'#此处更改
需要“rubygems”
类TestServer
LM-BOS-00715009:server joshughes$ ruby test.rb 
[2013-04-19 16:07:48] INFO  WEBrick 1.3.1
[2013-04-19 16:07:48] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
== Sinatra/1.4.2 has taken the stage on 22340 for development with backup from WEBrick
[2013-04-19 16:07:48] INFO  WEBrick::HTTPServer#start: pid=63798 port=22340
^C
== Sinatra has ended his set (crowd applauds)
[2013-04-19 16:07:56] INFO  going to shutdown ...
[2013-04-19 16:07:56] INFO  WEBrick::HTTPServer#start done.
[2013-04-19 16:07:56] INFO  WEBrick 1.3.1
[2013-04-19 16:07:56] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from WEBrick
[2013-04-19 16:07:56] INFO  WEBrick::HTTPServer#start: pid=63798 port=4567
^C
require 'sinatra/base' # change here
require 'rubygems'

class TestServer < Sinatra::Base # and here
  set :port, 22340
  get '/' do
    "Hello World"
  end
  run! if app_file == $0
end