Systemd テンプレートユニットインスタンスの順次停止

Systemd テンプレートユニットインスタンスの順次停止

特定のポートで実行されているいくつかのサービスを開始/停止するために作成する必要があるテンプレート ユニットがあります。 のようなものです[email protected][email protected]

[Unit]
After=network.target
PartOf=services.target

[Service]
ExecStart=app run --port %i
ExecStopPost=sleep 5

[Install]
WantedBy=multi-user.target

これらすべてのサービスを一度に管理するためのターゲットを作成しました。

cat services.target
[Unit]

[email protected] [email protected] 

それはうまくいきます。それらはすべて同じ API を提供しているので、サービスを中断するには、同時に 1 つのプロセスのみを再起動します。

After1 つの解決策として、で を使用することが考えられますunit templateが、実行中のプロセスの数は増減する可能性があるため、あまり柔軟ではありません。 1 つを削除すると、依存関係のチェーンが壊れる可能性があります...。 そのため、私が見つけた唯一の解決策は、 を間に挟んで、インスタンスを 1 つずつ停止/開始する bash スクリプトを作成することでした。 つまり、はとをsleep使用できますが、... は使用できません。これは不便です。targetstopstartrestart

他にどのようなオプションがありますか? 使用できる可能性はありますかnotify?

関連情報