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