2011-12-23 17 views
7

मैं एक सिनात्रा :: बेस वेब सेवा जो मैं एक कमांड लाइन रूबी कार्यक्रम से शुरू करना चाहते है, तो मैं इस है:चुपचाप सिनात्रा + पतला कैसे शुरू करें?

# 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 
... 

और मैं चाहता हूं कि यह चुप रहें, और जो मुझे चाहिए वो आउटपुट दें। उदाहरण के लिए, अगर मैं इसे शुरू daemonized नहीं मैं बस की तरह कमांड लाइन कार्यक्रम से कुछ संदेश और लॉग उत्पादन, कुछ देखना चाहते हैं:

== Sinatra has ended his set (crowd applauds) 
:

$ 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 ऐप शुरू करने का सबसे अच्छा विकल्प है?

उत्तर

2

आप

set :logging, false 

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

जहां तक ​​किया जाए या नहीं इस का सबसे अच्छा तरीका एक सिनात्रा एप्लिकेशन शुरू करने के लिए है के साथ प्रवेश करने सिनात्रा बंद कर सकते हैं ... आप को देखने के लिए चाहते हो सकता है " फोरमैन "मणि, और" Procfile "(जो Heroku.com उपयोग करता है) एक उदाहरण के रूप:

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

+2

अक्षम': logging' मेरे लिए काम नहीं करता। – Nakilon

+0

यदि सिनात्राबेस का उपयोग करना है, तो आपको इसे कक्षा घोषणा के अंदर करना होगा ... http://www.sinatrarb.com/intro.html#Sinatra::Base%20-%20Middleware,%20 पुस्तकालय ,%20and%20Modular%20Apps – GroovyCakes

+0

आप विकल्प – GroovyCakes

संबंधित मुद्दे