Если вы еще не использовали его, скрипт reaper
будет полезен для перезапуска диспетчеров FastCGI вашего Rails-приложения.
Похоже, что сценарий reaper в Edge rails теперь основан на существовании файлов PID в каталоге tmp/pids
. Если вы хотите скопировать старую функциональность, создайте свой собственный скрипт 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
и вызывается из рецепта развертывания Capistrano, как script/my_reaper
ниже:
task :restart, :roles => :app do run "ruby #{deploy_to}/current/script/process/my_reaper" end