1
现在就开始为守护进程,在已加载的一切:我的可执行文件运行我的应用程序是这样的:西纳特拉编程
Rack::Handler::pick(['puma']).run VCK::App
和它的作品,但它会阻止终端(这是确定的发展)
我如何从程序中以可执行文件的形式启动它作为守护进程?
编辑:
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
代码我用它来停止西纳特拉守护:
Process.kill(15, File.read(pid_file_loc).to_i)
这不是一个守护进程,它只是一个进程r在标准输出/错误进入控制台的背景下进行联络。一旦shell关闭,会话将收到一个HUP信号并关闭ruby进程。至少应该做一些类似于“nohup ruby server.rb> /var/tmp/server.out 2>&1&”的命令,以防止进程关闭挂断信号。 –