systemd サービスのマスキング

systemd サービスのマスキング

システムにサードパーティの rpm をいくつかインストールしていますが、その rpm の 1 つに systemd サービス ファイルと、サービスを有効にするためのプリセット ファイルがパッケージ化されています。サービスを無効にしてマスクしたままにしておきたいです。

無効化のために、systemdはプリセットフレームワーク優先度の高いプリセットファイルを書き込むことができます。

しかし、サービスをマスクするにはどうすればいいのでしょうか? プリセット ファイルと同様に、インストールできる構成ファイルはありますか? または、サービスをマスクするには、ノードの再起動時に実行する cron ジョブを追加する必要がありますか?

答え1

systemctl は実際に、サービスをマスクするたびにその方法を説明します。

# systemctl mask foo
Created symlink /etc/systemd/system/foo.service → /dev/null.

サービスを「マスキング」することは、上書きするサービスでは、 のユニット設定/etcが のものよりも優先されます/usr/lib。(これは systemd では一般的なパターンで、/etc のローカル管理者設定は /usr/lib のディストリビューション設定よりも優先されます。)

シンボリックリンク (または空の通常ファイル、ただしシンボリックリンクが推奨されます) で上書きされたサービスは、/dev/nullsystemd によって「マスクされている」と見なされます。

関連情報