6

我试图制作一个可执行文件,它通过 Thin 作为守护程序启动 Sinatra 应用程序。我正在使用此代码通过 Sinatra 应用程序调用 Thin:

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

有什么建议我如何追踪它为什么立即退出?

4

1 回答 1

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
于 2012-08-12T19:07:39.110 回答