Как перезагрузить Unicorn, не убивая мастер-процесс? - PullRequest
6 голосов
/ 16 января 2012

У меня есть проект RubyOnRails, и я развернул его с Unicorn на nginx на сервере Ubuntu.

Мне нужно перезапустить Unicorn, если я изменяю один из файлов конфигурации, но он отключает мой сайт, когда я убиваюГлавный процесс Unicorn и запустите его снова с bundle exec.

Есть ли способ заставить Unicorn работать с новыми файлами, не прерывая процесс и не останавливаясь?

Ответы [ 2 ]

8 голосов
/ 16 января 2012

В моем capistrano deploy.rb у меня есть:

desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
  run "kill -s USR2 unicorn_pid"
end

Это хорошо задокументировано в " Быстрое освещение с минимальным временем простоя с помощью git, capistrano, nginx и Unicorn ".

1 голос
/ 23 апреля 2013

Оба ответа, включая принятый, плохие.

http://unicorn.bogomips.org/SIGNALS.html говорит, что отправляет HUP в основной процесс.

desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
  run "kill -s HUP `cat tmp/pids/unicorn.pid`"
end
...