Question

J'ai un projet RubyOnRails et je l'ai déployé avec Unicorn sur nginx sur un serveur Ubuntu.

Je dois redémarrer Unicorn si je change l'un des fichiers de configuration, mais cela arrête mon site lorsque je tue le processus maître de Unicorn et le relance avec bundle exec.

Existe-t-il un moyen de faire fonctionner Unicorn avec de nouveaux fichiers sans interrompre le processus et s'arrêter?

Était-ce utile?

La solution

Dans mon capistrano deploy.rb j'ai:

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

Ceci est bien documenté dans " Éclairer des déploiements rapides et sans temps d'arrêt avec git, capistrano, nginx et Unicorn ".

Autres conseils

Les deux réponses, y compris celle acceptée, sont mauvaises.

http://unicorn.bogomips.org/SIGNALS.html dit d'envoyer un HUP àle processus maître.

desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
  run "kill -s HUP `cat tmp/pids/unicorn.pid`"
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top