【问题标题】:How the stoppage of a systemd service can trigger the stoppage of different one?systemd 服务的停止如何触发不同服务的停止?
【发布时间】:2017-04-03 09:13:03
【问题描述】:

我正在创建一个 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 服务文件单元。

【问题讨论】:

    标签: ubuntu-16.04 systemd startupscript


    【解决方案1】:

    您可以结合使用两个systemd 功能来解决您的问题。

    首先,您可以使用drop-in 文件来扩展现有的systemd conf 文件,而无需修改它。这是模式:

    1. 创建/etc/systemd/system/A.d/stop-b.conf
    2. 添加这个:

    [Service] ExecStopPost=systemctl stop B.service

    如果你想在 A 停止时停止 B。您在使用中看到的第二个功能是ExecStopPost= 指令,它会在服务停止时导致运行附加命令。

    【讨论】:

      猜你喜欢
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2018-05-14
      • 2016-05-05
      相关资源
      最近更新 更多