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