タイマー付きsystemdデバイス "Before ="

タイマー付きsystemdデバイス "Before ="

私のシステムには、b.timerによって有効になっているb.serviceがあります。 b.serviceの前に他のサービス(a.service)を起動したいと思います。 b.serviceやb.timerは私のものではないので変更できません。 a.serviceを入れましたが、タイマーはBefore=b.serviceb.serviceを起動しますが、a.serviceは起動しません。

答え1

a.serviceで表示できますRequiredBy b.service

a.service次のようにしてください:

[Unit]
Before=b.service

[Service]
Type=exec
ExecStart=...

[Install]
RequiredBy=b.service

それから:

systemctl enable a.service

b.service開始するたびに(タイマーであってもパスであっても)systemctl start、新しいものがa.service最初に始まります。

答え2

このBeforeディレクティブは起動時にのみ使用されます。サービスの順序を決定するためにのみ使用されます。

要件を満たすには、次のセクションを次のセクションに追加してくださいa.service

[Install]
WantedBy=b.service

次に、次を実行します。

systemctl enable a.service

これにより、b.service開始予定時刻より前に開始されますa.service

関連情報