Unicorn热重启与ruby 2.0.0和Rails 3.2.14

时间:2013-08-17 04:47:51

标签: ruby-on-rails ruby nginx ubuntu-12.04 unicorn

我正在使用Unicorn app服务器在rails应用程序上运行电子商务ruby。 ruby版本是2.0.0,rails版本是3.2.14。我正在运行Nginx作为Web服务器。当我将代码推送到服务器时,我需要重新启动unicorn应用程序服务器,这会导致网站中的blup / bleep,我搜索解决方案,但似乎没有任何工作。我之前使用乘客很好。

有没有办法在重启期间避免使用blup,因此可以保持零停机时间。

1 个答案:

答案 0 :(得分:1)

如果您将USR2发送到unicorn主站,它将导致unicorn工作程序重新启动,并且应该导致零停机重启。发送USR2信号:

kill -s USR2 process-id-of-master-process

将process-id-of-master-process替换为unicorn master的数字进程id(使用ps agx | grep unicorn找到它,或者在pids文件夹中查找unicorn.pid

请注意,如果unicorn在Bundler下运行,则每次更改Gemfile时仍需要进行冷启动,以便拾取新的Gemfile。