Linux
systemd ExecStopPost 和 $SERVICE_RESULT 行為
我希望不工作的部分按預期工作。該語法要求在環境變數 $SERVICE_RESULT 前後至少有一個空格。
系統版本:237
failurehandler@.service 模板使用 %i,我呼叫了一個小實用程序,該實用程序使用“_”解析 %i 以分離失敗的服務名稱 (%N),然後是相應的 $ SERVICE_RESULT. I tried injecting $ SERVICE_RESULT 使用 PassEnvironment 進入孩子,但這沒有幫助。
// 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
我只有 systemd 的早期版本,所以我無法準確測試您所做的事情,但通常您可以通過使用 form
${var}
而不是 shell form來獲得 systemd 插值的變數$var
。嘗試ExecStopPost=/bin/systemctl start failurehandler@%N_${SERVICE_RESULT}.service