如何使用 systemd 预设服务实例

如何使用 systemd 预设服务实例

我正在将实例化 service@ 打包为 RPM。该包应自动启用本地管理员已使用 .preset 文件指定的预设实例。安装 RPM 时自动启用它们的“systemctl预设{此处内容}”命令行是什么?

示例 /etc/systemd/system-preset/20-mypolicy.preset:

enable [email protected] one three nine

实例列表在 RPM 创建时未知,并且在myservice安装的每个系统上都会有所不同,具体取决于本地管理员的判断和需求。

本地管理员可以systemctl enable myservice@{one,two,nine}在 后执行rpm install ...,但这似乎违背了预设的目的。

我还怀疑我误解了如何根据以下内容指定服务实例预设systemd.unit 示例 2。在我的 CentOS7 系统上systemd-219-78.el7.x86_64,运行systemctl preset-all会禁用预设文件中列出的三个实例,即意外

有没有可能 systemd 219 实际上不支持实例预设,尽管它看起来支持实例以及预设?

这个特定版本是 CentOS 7 上目前可用的最新版本,这是我需要部署到的系统。

答案1

根据评论中的经验证据(感谢@TomYan),后来的 systemd 版本(例如 254.1)确实按照我的预期工作。

还有219 的 systemd.preset 联机帮助页我的 systemd 附带的根本没有提到模板实例,而最新版本确实如此,这意味着该功能可能是在版本 219 之后的某个时间添加的。

结论和答案是systemd 219 不支持服务实例预设

相关内容