6

ユニコーンでダウンタイムをゼロにデプロイするために、マスタープロセスにUSR2シグナルを送信しています。古いマスターが死んだ後、次のエラーが発生します。

adding listener failed addr=/path/to/unix_socket (in use)

unicorn-4.3.1/lib/unicorn/socket_helper.rb:140:in `initialize':
Address already in use - /path/to/unix_socket (Errno::EADDRINUSE)

古いマスターはbefore_fork、unicorn.rb構成ファイルのブロックで強制終了されます。プロセスは、デーモン(-D)オプションなしでupstartを介して開始されます。何が起こっているのかについてのアイデアはありますか?

4

1 に答える 1

2

ダウンタイムをゼロに展開できるようにするには、デーモン化モード(-D)で実行する必要があります。upstartスクリプトでいくつか変更しましたが、正常に機能するようになりました。

setuid username
pre-start exec unicorn_rails -E production -c /path/to/app/config/unicorn.rb -D
post-stop exec kill cat `/path/to/app/tmp/pids/unicorn.pid`
respawn
于 2012-12-19T01:01:18.747 に答える