override.confファイルは実際のサービスファイルconfを変更しますか?

override.confファイルは実際のサービスファイルconfを変更しますか?

override.confファイルを作成してディレクトリsystemd-journal-catalog-update.serviceに入れました。systemd-journal-catalog-update.service.d/その目的は、systemd-tmpfiles-setup.service次のように始めることです。systemd-journal-catalog-update.service file.

これで、ファイルには次の内容が含まれます。

[Unit]
After=local-fs.target systemd-tmpfiles-setup.service

私のoverride.confファイルには次のものがあります。

[Unit]
After=
After=local-fs.target

しかし、systemd-journal-catalog-update.serviceファイルが変更されたようではありません。このファイルがどのように機能するのか私が間違って理解したのでしょうかoverride.conf?元のサービスファイルを手動で変更できることはわかっていますが、プロジェクトの状況によってはこのオプションが制限されます。あなたが提供できるヘルプ/アドバイスに心から感謝します。

ベストアンサー1

~によるとシステム装置マニュアルページ:

依存関係(以降=など)は空のリストにリセットできないため、依存関係はドロップインからのみ追加できます。依存関係を削除するには、ユニット全体を上書きする必要があります。

マンページの次の例2では、​​ユニットファイル全体をオーバーライドできます。

ユニットファイルのベンダー設定を上書きする方法は2つあります。ユニットファイルを/usr/lib/systemd/systemから/etc/systemd/systemにコピーし、選択した設定を変更します。 [...]最初のアプローチの利点は、ユニット全体を簡単に処理でき、ベンダーユニットを解析しなくなることです。欠点は、ベンダーのユニットファイルの改善がアップデートに自動的に統合されないことです。

あなたの場合(root)

  • cp /usr/lib/systemd/system/systemd-journal-catalog-update.service /etc/systemd/system
  • systemctl daemon-reload
  • systemctl restart systemd-journal-catalog-update

次に、次のsystemctl status場所でサービスファイルをポイントします/etc

# systemctl status systemd-journal-catalog-update
● systemd-journal-catalog-update.service - Rebuild Journal Catalog
     Loaded: loaded (/etc/systemd/system/systemd-journal-catalog-update.service; static)
     Active: active (exited) since Sat 2021-05-22 16:27:07 CEST; 3 weeks 2 days ago
[...]

上記の内容には、systemctl cat次のファイルも表示されません/etc/

# systemctl cat systemd-journal-catalog-update
# /etc/systemd/system/systemd-journal-catalog-update.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Rebuild Journal Catalog
[...]

/etcこれで、必要に応じてファイルを編集、systemctl daemon-reload再実行し、systemctl restart systemd-journal-catalog-updateカスタム単位ファイルとその設定でサービスを実行できます。

マニュアルページに記載されている次の点に注意してください。

欠点は、ベンダーのユニットファイルの改善がアップデートに自動的に統合されないことです。

systemdはディストリビューションのsystemdパッケージにあるユニットファイルとはまったく異なるユニットファイルを読み取るため、そのファイルのすべてのアップデートを/usr/lib自分のコピーに手動で適用する必要があります。.rpmnew(RPMベースの展開で)または.pacnew(パックマンベースの展開で)パッケージマネージャがローカル管理者によって変更された設定ファイルを追跡すると、通常ファイルが生成されます。この場合、パッケージは作成されません。

おすすめ記事