如何在不杀死主进程的情况下重新加载Unicorn?

lei*_*sat 7 ruby-on-rails nginx unicorn ruby-on-rails-3.1

我有一个RubyOnRails项目,并在Ubuntu服务器上将它与Unicorn一起部署在nginx上.

如果我更改其中一个配置文件,我需要重新启动Unicorn,但是当我杀死Unicorn的主进程并再次启动时,它会使我的站点关闭bundle exec.

是否有任何方法可以让Unicorn使用新文件而不会导致进程崩溃并停止运行?

tom*_*sop 8

在我的capistrano deploy.rb中我有:

desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
  run "kill -s USR2 unicorn_pid"
end
Run Code Online (Sandbox Code Playgroud)

这在" 使用git,capistrano,nginx和Unicorn进行快速,零停机部署 "中有详细记载.

  • 根据文档,发送"USR2"将留下一个古老的独角兽主进程. (4认同)