2012-07-24 14 views
6

Si tenta di creare un eseguibile, che avvia un'applicazione Sinatra tramite Thin come demone. Sto usando questo codice per invocare Sottile con l'applicazione Sinatra:Thin :: Il daemonize del server n. Termina immediatamente

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

Ecco l'output del registro ottengo quando eseguire lo script:

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

Il server inizia bene quando faccio

server.start 

Qualche suggerimento su come individuare il motivo per cui esce immediatamente?

+0

1. È cartella tmp scrivibile? 2. App o App.new nella parte di creazione dell'oggetto server? – Kashyap

risposta

4

L'utilizzo di daemonize rende lo script solo un daemon, in realtà non avvia il server. Hai ancora bisogno di chiamare start seguito:

server.daemonize 
server.start 

file di registro:

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

Funziona come un fascino. Molte grazie! – benzimmer

+0

Questo è piuttosto un vecchio post, ma non ho dovuto iniziare in modo esplicito thin dopo aver chiamato 'server.daemonize' – poorva

Problemi correlati