他のサービスが開始または再ロードされると、Systemd Unitサービスが再起動されます。

他のサービスが開始または再ロードされると、Systemd Unitサービスが再起動されます。

可能であれば、システムのインストールとアップグレードを編集せずに起動時にSystemdrestart()または再ロード(設定のみを再ロード)する方法があるかどうかを知りたいです。A.serviceAfterB.serviceB.service

A.serviceB.serviceインストールされていない、無効になっている、または停止した場合でも起動する必要があります。

A.service:

[Unit]
After = B.service network-online.target
Wants = B.service

[Service]
Type=oneshot
ExecStart = /script.sh start
ExecStop = /script.sh stop
RemainAfterExit=yes

[Install]
WantedBy = network-online.target

B.service:

[Unit]
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/cmd start
ExecStop=/cmd stop
ExecReload=/cmd reload
PIDFile=/var/run/cmd.pid

[Install]
WantedBy=multi-user.target

ベストアンサー1

PartOfこのセクションを使用できます[Unit]

例:PartOf=B.service

マニュアルページでは、

部分=

依存関係の設定はRequires =に似ていますが、デバイスを停止して再起動することに制限されています。 systemdがここにリストされているデバイスを停止または再起動すると、ジョブはそのデバイスに伝播されます。これは一方向の依存関係です。このデバイスを変更しても、リストされているデバイスには影響しません。

おすすめ記事