2012-07-24 19 views
6

Próbuję zrobić plik wykonywalny, który uruchamia aplikację Sinatra poprzez Thina jako demona. używam tego kodu, aby wywołać Cienkie z aplikacji Sinatra:Thin :: Server # daemonize kończy natychmiastowo

#!/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 

Oto wynik log mam kiedy wykonać skryptu:

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

Serwer zaczyna dobrze, gdy robię

server.start 

Jakieś sugestie, w jaki sposób mogę znaleźć przyczynę natychmiastowego wyjścia?

+0

1. Czy folderu tmp zapisywalny? 2. App lub App.new w części tworzenia obiektu serwera? – Kashyap

Odpowiedz

4

Powoduje jedynie, że skrypt jest demonem, w rzeczywistości nie uruchamia serwera. Trzeba jeszcze zadzwonić start potem:

server.daemonize 
server.start 

plik log:

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

Działa jak urok. Wielkie dzięki! – benzimmer

+0

To jest dość stary post, ale nie musiałem zaczynać nic od razu po wywołaniu 'server.daemonize' – poorva