Come ricarico Unicorn senza uccidere il processo principale?
-
28-10-2019 - |
Domanda
Ho un progetto di RubyonRails e lo ho distribuito con unicorno su Nginx su un server Ubuntu.
Devo riavviare un unicorno se cambio uno dei file di configurazione, ma fa chiudere il mio sito quando uccido il processo principale di Unicorn e ricomincialo con bundle exec
.
C'è un modo per far funzionare gli unicorno con nuovi file senza uccidere il processo e scendere?
Soluzione
Nel mio Capistrano Deploy.rb ho:
desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
run "kill -s USR2 unicorn_pid"
end
Questo è ben documentato in "Illuminazione veloce, distribuzioni a zero in tempo a zero con Git, Capistrano, Nginx e Unicorn".
Altri suggerimenti
Entrambe le risposte, incluso quella accettata, sono cattive.
http://unicorn.bogomips.org/signals.html dice inviare un HUP
al processo principale.
desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
run "kill -s HUP `cat tmp/pids/unicorn.pid`"
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow