2012-07-24 24 views
6

Estoy tratando de hacer un ejecutable, que inicia una aplicación Sinatra a través de Thin como daemon. Estoy usando este código para invocar fino con el Sinatra aplicación:Thin :: Server # daemonize exit inmediatamente

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

Aquí está la salida del registro consigo cuando ejecuto el script:

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

El servidor comienza bien cuando lo haga

server.start 

¿Alguna sugerencia de cómo rastrear por qué sale inmediatamente?

+0

1. se puede escribir en la carpeta tmp? 2. ¿Aplicación o aplicación nueva en la parte de creación del objeto del servidor? – Kashyap

Respuesta

4

El uso de daemonize solo hace que el script sea un daemon, en realidad no inicia el servidor. Todavía es necesario llamar start después:

server.daemonize 
server.start 

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

Funciona como un encanto. ¡Muchas gracias! – benzimmer

+0

Esta es una publicación bastante antigua, pero no tuve que comenzar a trabajar de forma explícita después de llamar a 'server.daemonize' – poorva