2012-07-24 54 views
6

Tôi đang cố gắng tạo một tệp thực thi, khởi chạy ứng dụng Sinatra thông qua Thin như một daemon. Tôi đang sử dụng mã này để gọi mỏng với ứng dụng Sinatra:Thin :: Server # daemonize thoát ngay lập tức

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

Đây là kết quả đăng nhập tôi nhận được khi tôi thực thi kịch bản:

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

Các máy chủ khởi động tốt khi tôi làm

server.start 

Bất kỳ đề xuất nào về cách tôi theo dõi lý do khiến nó thoát ngay lập tức?

+0

1. Là thư mục tmp ghi? 2. Ứng dụng hoặc App.new trong phần tạo đối tượng máy chủ? – Kashyap

Trả lời

4

Sử dụng daemonize chỉ làm cho tập lệnh thành một daemon, nó không thực sự khởi động máy chủ. Bạn vẫn cần phải gọi start sau:

server.daemonize 
server.start 

Log file:

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

Hoạt động như một sự quyến rũ. Cảm ơn rất nhiều! – benzimmer

+0

Đây là một bài đăng khá cũ, nhưng tôi không phải bắt đầu một cách rõ ràng sau khi gọi 'server.daemonize' – poorva

Các vấn đề liên quan