2012-07-24 127 views
6

我試圖製作一個可執行文件,它通過Thin作爲守護進程啓動一個Sinatra應用程序。 我使用這個代碼來調用薄與西納特拉應用:Thin :: Server#守護進程立即退出

#!/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 2012-07-25 04:39:37

回答

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 2012-08-15 09:07:38

+0

這是一個相當古老的帖子,但我沒有明確地調用'server.daemonize' – poorva 2016-07-15 09:41:21