web-dev-qa-db-ja.com

RPMからsystemdサービスをインストールしますか?

私はすべてを/optにインストールするRPMSを(CMakeのCPackを使用して)作成しています。その後、ポストインストールスクリプトがサービス定義ファイルを/etc/systemd/systemにコピーします。

RPMのpostinstallスクリプトとpreuninstallスクリプトでサービスの開始と停止をいじってみましたが、yumはpreuninstallスクリプトの前にpostinstallスクリプトを実行するため、これは良い考えではないようです。つまり、サービスをアップグレードしようとすると、サービスが実行されなくなるということです。有効化/無効化でも同じ問題があるようです。

だから私が持っている2つの質問

  1. /etc/systemdに直接インストールすることをお勧めしますか、それとも/optから/etc/systemdにポストインストールコピーする必要がありますか? cpの後にsystemctl daemon-reloadが続いているのは、サービスファイルをインストールする「正しい」方法ですか?

  2. RPMからのstarting/stopping/enable/disableサービスのクリーンな方法はありますか、またはこれはRPMから除外した方が良いですか?

Debianに関連する質問(回答なし):

Debianパッケージインストールからsystemd.serviceを有効にするための推奨/慣用的な方法

7
Mark Lakata

参照: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd

スクリプトレットでは、$ 1変数を使用して、それがアップグレードかクリーンインストールか、パッケージのアップグレードまたは削除かを検出できます。変数の値はここで定義されています: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax

3
msuchy