我有一组单元,需要与multi-user.target.之后的多个目标一起运行
示例:
multiuser.target<-->;example1.target<-->;example2.target<-->;多用途目标
示例目标:
[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=不能直接指定依赖项。
点击此处阅读更多