多个目标需要的系统单元,并在目标停止时停止

  • 本文关键字:目标 系统 单元 service systemd
  • 更新时间 :
  • 英文 :


我有一组单元,需要与multi-user.target.之后的多个目标一起运行

示例:

multiuser.target&lt-->example1.target&lt-->example2.target&lt-->多用途目标

示例目标:

[Unit]
Description=Example target
Wants=multi-user.target
Requires=example.service
#PropagatesStopTo=example.service
Conflicts=rescue.service rescue.target
After=multi-user.target basic.target rescue.service rescue.target

示例服务单元:

[Unit]
Description=Example unit
After=multi-user.target
Wants=multi-user.target
[Service]
Environment=Some Enviroment
ExecStart=Some Binary
Restart=on-failure
RestartSec=1
Type=simple
[Install]
WantedBy=example1.target example2.target

主要问题是,当我试图停止当前运行的目标时,没有一个必需的单元停止。我曾尝试在目标中使用PropagatesStopTo=example.service,但没有成功。输出如下:/lib/systemd/system/example1.target:7:节"Unit"中的未知密钥名称"PropagatesStopTo",正在忽略。我的systemd版本是:系统d 241(241-166-g511646b+(我知道我的systemd不支持PropagatesStopTo,所以我正在尝试在我当前的systemd版本中找到一个替代方案。

您可以在服务文件中添加以下内容。

PartOf=example1.target

这增加了对目标中单元的ConsistsOf依赖性。

从系统页面

配置类似于Requires=的依赖项,但仅限于停止和重新启动单元。当systemd停止或重新启动此处列出的单元时,操作将传播到此单元。请注意,这是一个单向依赖项——对此单元的更改不会影响列出的单元。

当PartOf=b.service用于a.service时,将显示此依赖关系as ConsistensOf=b.service.ConsistensOf的属性列表中的a.service=不能直接指定依赖项。

点击此处阅读更多

相关内容

最新更新