Pregunta

Tengo un proyecto RubyonRails y lo desplegé con Unicorn en Nginx en un servidor Ubuntu.

Necesito reiniciar unicornio si cambio uno de los archivos de configuración, pero hace que mi sitio se apague cuando mato el proceso maestro de Unicornio y lo comience nuevamente con bundle exec.

¿Hay alguna forma de hacer que unicornio funcione con nuevos archivos sin matar el proceso y caer?

¿Fue útil?

Solución

En mi Capistrano desplegable.rb tengo:

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

Esto está bien documentado en "Implementaciones rápidas y de tiempo cero con Git, Capistrano, Nginx y Unicornio".

Otros consejos

Ambas respuestas, incluida la aceptada, son malas.

http://unicorn.bogomips.org/signals.html dice enviar un HUP al proceso maestro.

desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
  run "kill -s HUP `cat tmp/pids/unicorn.pid`"
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top