展開後にユニコーンを手動で停止および開始することによるダウンタイムを許容したい場合、アプリは正常に展開されます。ただし、ゼロ ダウンタイム ユニコーン設定を使用したいのですが、起動する新しいユニコーン プロセスが古いデプロイ リリース パスを参照しているため、機能していません。特別なことはなく、deploy.rb でキャップを再起動するだけです:
desc "Zero-downtime restart of Unicorn"
task :restart, :except => { :no_release => true } do
run "cd #{current_path}; #{try_sudo} kill -s USR2 `cat /var/www/appname/shared/pids/unicorn.pid`"
end
keep_releases
ビューが変更されない場合、1 または 2 に設定すると、起動しようとしているディレクトリが削除されたため、ユニコーンのログにエラーが表示されるため、間違ったディレクトリを参照していることがわかります。
/var/www/appname/shared/bundle/ruby/1.9.1/gems/unicorn-4.4.0/lib/unicorn/http_server.rb:425:in `chdir': No such file or directory - /var/www/appname/releases/20130330104246 (Errno::ENOENT)
私はこれを数週間オンとオフでデバッグしようとしています。これを機能させるための助けがあれば大歓迎です!