テンプレートではなくシステム単位の複数のインスタンス

テンプレートではなくシステム単位の複数のインスタンス

私はCentOS 7サーバーで2つのPostgreSQLインスタンスを実行しており、SysVスタイルのinitスクリプトをsystemd単位に変換しています。問題は、PostgreSQL RPMがテンプレートではなく単一のサービスユニットファイルに付属していることです。

私が知っている限り、私はいくつかの不愉快なオプションから選択する必要があります。

  1. 廃止されたディレクティブを使用して、.include/etc/systemd/system の下に 2 つのカスタム単位を作成できます。現在のサービスファイルは実際には提案ただし、ディレクティブは.include使用されなくなったため、将来の動作が停止される可能性があることを認識しています。
  2. ユニットファイルをコピーできますが、最終的に元のユニットファイルは更新されますが、コピーされたユニットファイルは更新されないと不一致が発生する危険があります。
  3. 既存のユニットファイルに基づいてテンプレートを作成できます。これは、マイユニットが正常に実行される場合とそうでない場合がありますが、アップストリームユニットファイルが更新されてもまだ更新されないことを意味します。

もっと良い方法がありますか?これは走りたい人の一般的なユースケースのようです。マルチデータベースサーバーまたはマルチSSHデーモンまたは複数のhttpサーバー同じマシンで。

答え1

テンプレートユニットはおそらく最良の解決策でしょう。 Debian パッケージの設定方法は次のとおりです。postgres-common源泉必要に応じてパスを調整します。ユニットファイルがアップストリームによって自動的に更新されないのは事実ですが、残念ながらこの問題を解決する方法はありません。おそらく、次のメジャーバージョンではデフォルトのテンプレートユニットがリリースされますか?

関連情報