システムにサードパーティの 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/null
systemd によって「マスクされている」と見なされます。