systemd ExecStopPostと$ SERVICE_RESULTの動作

systemd ExecStopPostと$ SERVICE_RESULTの動作

うまくいかない部分が期待どおりに機能することを願っています。この構文には、環境変数$ SERVICE_RESULTの前後に少なくとも1つのスペースが必要です。

システムバージョン:237

これ[Eメール保護]テンプレートは%iを使用し、「_」を使用して%iを解析し、失敗したサービス名(%N)とその$ SERVICE_RESULTを区別する小さなユーティリティを呼び出します。 PassEnvironmentを使用して$ SERVICE_RESULTをサブプロセスに注入しようとしましたが、役に立ちませんでした。

// works
ExecStopPost=/bin/echo $SERVICE_RESULT

// works
ExecStopPost=/bin/systemctl start failurehandler@%N $SERVICE_RESULT .service

// doesn't work. I want this working to later use the %N and the $SERVICE_RESULT 
ExecStopPost=/bin/systemctl start failurehandler@%N_$SERVICE_RESULT.service

答え1

私は以前のバージョンのsystemdしか持っていないので、正確に何をしているかをテストすることはできませんが、通常${var}シェルフォームの代わりにフォームを使用してsystemdによって補間された変数を取得できます$var。努力する

ExecStopPost=/bin/systemctl start failurehandler@%N_${SERVICE_RESULT}.service

関連情報