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
あなたが望むこと(ドロップインファイルを介してユニットから依存関係を削除すること)は、システムユニットマニュアルページ:
依存関係 (After= など) は空のリストにリセットできないため、依存関係はドロップインでのみ追加できます。依存関係を削除する場合は、ユニット全体をオーバーライドする必要があります。
ユニット ファイル全体を上書きするには、マニュアル ページの例 2 に従います。
ユニット ファイルでベンダー設定を上書きする方法は 2 つあります。ユニット ファイルを /usr/lib/systemd/system から /etc/systemd/system にコピーし、選択した設定を変更する方法です。[...] 最初の方法の利点は、ユニット全体を簡単に上書きできることです。ベンダー ユニットはまったく解析されなくなります。欠点は、ベンダーによるユニット ファイルの改善が更新時に自動的に組み込まれないことです。
あなたの場合は、(ルートとして)
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
(pacman ベースのディストリビューションの場合) パッケージ マネージャーによって追跡される構成ファイルがローカル管理者とパッケージの両方によって変更された場合に通常生成されるファイルは、この場合は生成されません。