现在,在加载了所有可执行文件之后,运行我的应用程序就像这样:
Rack::Handler::pick(['puma']).run VCK::App
它可以工作,但它会阻塞终端(可以开发)
如何从我的可执行文件中以编程方式启动它作为守护程序?
编辑:
我用来启动sinatra作为守护进程的代码:
if options[:daemonize]
pid = fork {Rack::Handler::pick(['puma']).run VCK::App}
File.open(pid_file_loc, 'w') {|f| f.write(pid)}
Process.detach(pid)
else
Rack::Handler::pick(['puma']).run VCK::App
end
我用来阻止Sinatra Daemon的代码:
Process.kill(15, File.read(pid_file_loc).to_i)