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 服务文件单元。

4

1 回答 1

1

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

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

  1. 创建/etc/systemd/system/A.d/stop-b.conf.
  2. 将其添加到其中:

[Service] ExecStopPost=systemctl stop B.service

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

于 2017-04-03T15:01:43.837 回答