2012-07-24 6 views
6

デモとしてThin経由でSinatraアプリケーションを起動する実行可能ファイルを作成しようとしました。私はシナトラアプリでシン呼び出すために、このコードを使用しています :ここThin :: Server#daemonizeすぐに終了します

#!/usr/bin/env ruby 

require 'thin' 
require 'app.rb' 

server = ::Thin::Server.new('127.0.0.1', 9999, App) 
server.log_file = 'tmp/thin.log' 
server.pid_file = 'tmp/thin.pid' 
server.daemonize 

は、私は、スクリプトを実行したときに私が手ログ出力されます:

>> Writing PID to tmp/thin.pid 
>> Exiting! 

私は

を行う際に、サーバーが正常に起動します
server.start 

私はそれがすぐに終了する理由をどのように追跡するのですか?

+0

1. tmpフォルダを書き込み可能ですか? 2.サーバーオブジェクト作成部のAppまたはApp.new? – Kashyap

答えて

4

daemonizeを使用すると、スクリプトはデーモンになりますが、実際にはサーバーは起動しません。あなたはまだ、その後start呼び出す必要があります:

server.daemonize 
server.start 

ログファイル:

>> Writing PID to tmp/thin.pid 
>> Thin web server (v1.4.1 codename Chromeo) 
>> Maximum connections set to 1024 
>> Listening on 127.0.0.1:9999, CTRL+C to stop 
+0

魅力的な作品です。どうもありがとう! – benzimmer

+0

これはかなり古い投稿ですが、 'server.daemonize'を呼び出して明示的に薄くする必要はありませんでした。 – poorva

関連する問題