如何默默地启动Sinatra + Thin?

时间:2011-12-23 19:04:37

标签: ruby sinatra thin

我有一个Sinatra :: Base webservice,我想从命令行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脚本)中使用thin启动sinatra应用程序的最佳选择吗?

1 个答案:

答案 0 :(得分:2)

您可以使用

关闭Sinatra日志记录
set :logging, false

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

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

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