¿Cómo recargo el unicornio sin matar el proceso maestro?
-
28-10-2019 - |
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?
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