私はsystemdを使って最初にunicornを配布しています(実際にsystemdを使うのは初めてです)。そしてユニコーン「ダウンタイムゼロアップグレード」トリックまたは基本的には次のようになります。
USR2
メインプロセスに送信- これにより、新しいマスターとワーカーが作成され、古いpidfileの名前が変更され、新しいpidfileが新しいマスターのPIDを反映します。
- 前のマスターにQUITを送信
- これにより、以前のワーカーは現在の要求を処理して終了し、古いマスターが死にます。
1つを除いて、すべてがうまく動作します。 systemdのログキャプチャ(for systemctl status
)は新しいプロセスの出力を見ることができません。転換過程などに関与しないからだと思います。
システムはい新しいホストのPIDを確認して正しく追跡してください。
ユニコーンの構成でこれを設定してマスターをHUP(マスターのPIDを変更しない)だけすればpreload_app = false
すべてが大丈夫です。しかし、実際にユニコーンをアップグレードしようとする状況は解決されません。
重要な場合は、ユニコーンデーモンがなく、デバイスType=simple
設定ファイルにあります。
新しいマスターのログ出力に自分自身を追加するようにsystemdを取得する方法はありますか?