Как тихо запустить Sinatra + Thin?

У меня есть веб-сервис 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)

И последний вопрос: это лучший вариант для запуска приложения Sinatra с тонким кодом приложения (в данном случае скриптом ruby)?


person João Pereira    schedule 23.12.2011    source источник


Ответы (1)


Вы можете отключить ведение журнала Sinatra с помощью

set :logging, false

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

Что касается того, является ли это лучшим способом запуска приложения sinatra... Возможно, вы захотите взглянуть на гем «бригадир» и «Procfile» (который использует Heroku.com) в качестве примера:

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

person GroovyCakes    schedule 24.01.2012
comment
Если вы используете SinatraBase, вы должны сделать это внутри объявления класса... sinatrarb.com/ - person GroovyCakes; 21.02.2013
comment
Вы также можете попробовать включить / отключить настройку параметров в стиле - person GroovyCakes; 21.02.2013
comment
Вы можете увидеть github.com/sinatra/sinatra/blob / что невозможно отключить сообщения о завершении работы (или запуске) (если только вы не откроете stderr повторно, но это кажется нецелесообразным). - person mxcl; 17.03.2014