我打算在我的capistrano配方文件中添加一些任务,以便管理员能够远程启动/停止/重启private_pub服务器。但如果一开始我可以使用像
这样的东西 desc "Start private_pub server"
task :start do
run "cd #{current_path};rackup private_pub.ru -s thin -E production -D"
end
我找不到任何文档如何停止或重新启动rackup服务器。我看到选项
-P, --pid FILE file to store PID (default: rack.pid)
但也许使用kill命令来停止服务器 - 不是很好主意?
答案 0 :(得分:2)
我在搜索相同的解决方案时发现了这一点。
基本上在启动过程时你将pid编号写入/ tmp / pids中的文件然后当你去停止它时你会读取该文件并运行kill -9 ...
希望它有所帮助。
答案 1 :(得分:0)
您的使用kill -9
是正确的,这是错误的。这可能导致不必要的数据丢失,据我所知,建议使用kill 2
或kill -INT
,这相当于打击' control-c'并应为您关闭一个普通的服务器。我个人已经开始使用TPW的God gem来管理我的服务器。这是我用来运行本地' geminabox'服务器,例如:
God.watch do |w|
w.name = 'gemserver'
w.dir = '/usr/local/gemserver'
w.pid_file = "#{ENV['HOME']}/.god/pids/#{w.name}.pid"
ru = File.expand_path `which rackup`
w.start = "#{ru} -D #{w.dir}/config.ru -P #{w.pid_file}"
# w.stop = lambda { Process.kill(3, `lsof -i :9292`.chomp.to_i) }
w.behavior :clean_pid_file
w.keepalive
end