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?

È stato utile?

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
scroll top