ruby – 如何在不同的端口上运行瘦机?
我有一个非常基本的测试应用程序.当我执行此命令时,服务器忽略我指定的端口并在端口4567上运行Thin.为什么我指定的端口被忽略?
$ruby xxx.rb start -p 8000 == Sinatra/1.3.3 has taken the stage on 4567 for production with backup from Thin >> Thin web server (v1.4.1 codename Chromeo) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:4567,CTRL+C to stop xxx.rb文件 require 'Thin' rackup_file = "config.ru" argv = ARGV argv << ["-R",rackup_file ] unless ARGV.include?("-R") argv << ["-e","production"] unless ARGV.include?("-e") puts argv.flatten Thin::Runner.new(argv.flatten).run! config.ru文件 require 'sinatra' require 'sinatra/base' class SingingRain < Sinatra::Base get '/' do return 'hello' end end SingingRain.run! 解决方法
你的问题在于:
SingingRain.run! 这是Sinatra的 当您使用CTRL-C停止此服务器时,Thin将尝试继续加载config.ru文件以确定要运行的应用程序.你实际上没有在config.ru中指定一个应用程序,所以你会看到类似的东西: ^C>> Stopping ... == Sinatra has ended his set (crowd applauds) /Users/matt/.rvm/gems/ruby-1.9.3-p194/gems/rack-1.4.1/lib/rack/builder.rb:129:in `to_app': missing run or map statement (RuntimeError) from config.ru:1:in `<main>' ... 此错误只是告诉您实际上没有指定要在配置文件中运行的应用程序. 而不是SingingRain.run !,使用: run SingingRain run是一个Rack方法,用于指定要运行的应用程序.你也可以运行SingingRain.new – Sinatra采取措施让你只使用这里的类本身或实例. 现在的输出应该只是: >> Thin web server (v1.4.1 codename Chromeo) >> Maximum connections set to 1024 >> Listening on 0.0.0.0:8000,CTRL+C to stop 你没有得到== Sinatra / 1.3.2已经在4567上用于生产备份来自Thin消息,因为Sinatra没有运行其内置服务器,它只是你配置它的瘦服务器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- IE下Ajax缓存问题的解决办法
- actionscript-3 – 在新窗口中打开Actionscript 3
- objective-c – 为我的应用程序的文档类型注册一个图标
- 如何检查字符串是否是有效的XML with-out在PHP中显示警告
- ACE_Dev_Poll_Reactor的处理优先级严重偏向定时器
- ruby-on-rails – 1.week.ago.in_zone(Time.zone)for Rails
- c# – ASP.NET MVC 4如何使用自定义的memberprovider和role
- oracle – 在不增加Cores的情况下增加Spark Executor中的并
- 前端Ajax/JS/HTML+后端SpringMVC(二)
- 是否可以在Swift中编写内联汇编?