【问题标题】:How to silently start Sinatra + Thin?如何静默启动 Sinatra + Thin?
【发布时间】:2012-01-27 00:45:18
【问题描述】:

我有一个 Sinatra::Base 网络服务,我想从命令行 Ruby 程序启动它,所以我有这个:

# command line program file
require 'mymodule/server'

puts "Running on 0.0.0.0:4567, debugging to STDOUT..."

MyModule::Server.run! bind: '0.0.0.0', port: 4567, environment: :production

这按预期工作,但它抛出了:

$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...

== Sinatra/1.3.1 has taken the stage on 4567 for production with backup from Thin
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop

127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133
...

我希望它保持沉默,让我输出我想要的东西。例如,如果我启动它而不是守护进程,我只想从命令行程序和日志输出中看到一些消息,例如:

$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...
127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133
...

也想静默关机,隐藏:

== Sinatra has ended his set (crowd applauds)

最后一个问题,这是从应用程序代码(在本例中为 ruby​​ 脚本)中启动 sinatra 应用程序的最佳选择吗?

【问题讨论】:

    标签: ruby sinatra thin


    【解决方案1】:

    您可以使用以下命令关闭 Sinatra 日志记录

    set :logging, false
    

    http://www.sinatrarb.com/configuration.html

    至于这是否是启动 sinatra 应用程序的最佳方式...您可能想查看“工头” gem 和“Procfile”(Heroku.com 使用)作为示例:

    http://ddollar.github.com/foreman/

    【讨论】:

    • 如果使用 SinatraBase,则必须在类声明中进行...sinatrarb.com/…
    • 你也可以试试options的enable/disable-style设置
    • 您可以看到 github.com/sinatra/sinatra/blob/… 无法使关闭(或启动)消息静音(除非您重新打开 stderr,但似乎不可取)。
    猜你喜欢
    • 2012-05-24
    • 2011-12-09
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2019-04-03
    • 2013-01-14
    • 2012-01-18
    相关资源
    最近更新 更多