Debian
覆蓋 systemd 服務時如何命令 ExecStop= 執行?
我正在嘗試使用覆蓋文件向 systemd 服務( user-runtime-dir@.service )添加功能。我遇到的麻煩是我需要新功能始終在舊功能“內部”執行,即在原始服務的 ExecStart= 之後和ExecStop *=*之前(因為它在由舊功能,然後在刪除該目錄之前解除安裝它)。
前者很簡單,因為我可以使用ExecStartPost=來確保正確排序。但是沒有ExecStopPre=,如果我只使用ExecStop=,則無法保證排序,實際上結果是錯誤的。
有什麼解決方法嗎?
有什麼解決方法嗎?
如果需要顯式排序,可以替換覆蓋中的現有
ExecStop
功能。例如,如果原始單元文件有:ExecStop=/path/to/script1
在您的直接覆蓋中,您可以擁有:
ExecStop= ExecStop=/path/to/my_additional_script ExecStop=/path/to/script1
空白
ExecStop=
清除所有現有條目。或者,
ExecStop
可以使用適當的依賴項(///等)將您的邏輯實現為單獨的單元,Requires
而不是使用。Before``After