2017-04-03 88 views
0

我正在創建一個systemd服務,我們在Ubuntu 16.04上將它稱爲B,我希望每次啓動後都會啓動一個名爲A的特定服務,然後運行特定腳本。到目前爲止,我已經創建了包括以下字段的服務單位文件:系統服務的停止如何觸發不同服務的停止?

[Unit] 
Description=B 
After=A.service 

[Service] 
ExecStart=/opt/B.sh 

[Install] 
WantedBy=multi-user.target 

此外,我想服務A的停工引發服務B的停止是否有效與做以下命令在A服務單元文件中

ExecStop=systemctl stop A.service 

還是有另一種方式?如果可能的話,我不想改變現有的A服務文件單元。

回答

1

您可以結合使用兩個systemd功能來解決您的問題。

首先,您可以使用drop-in文件擴展現有的systemd conf文件而不進行修改。這裏的模式:

  1. 創建/etc/systemd/system/A.d/stop-b.conf
  2. 一下添加到它:

[Service] ExecStopPost=systemctl stop B.service

,如果你想阻止B時的停止的那會。您看到的第二個功能是ExecStopPost=指令,以便在服務停止時運行附加命令。