运行你自己的分发器reaper脚本如果你以前没有使用过reaper脚本,那你就要试试它,reaper脚本语言对Rails程序的FastCGI分发器的重启非常有效。
看起来现在Edge
rails中reaper脚本要依赖
tmp/pids目录中的PID文件的存在。如果你想复制原功能,你只要创建自已的Ruby脚本,重写Capistrano的重启任务来调用你自己的脚本,而不是调用标准的
script/reaper。
我自己程序中一个简单的reaper脚本:
#!/usr/bin/env ruby
for process in `ps axwwl`.grep(/dispatch\.fcgi/).collect { |s| s.split[1] }
puts "Sending USR2 to dispatch.fcgi process #{process}"
Process.kill("USR2", process.to_i)
end 上面的代码是在
script/my_reaper里面的,被Capstrano部署方法调用的代码如下:
task :restart, :roles => :app do
run "ruby #{deploy_to}/current/script/process/my_reaper"
end [
本帖最后由 Ragnarok 于 2007-11-10 01:28 编辑 ]