操作系统 - 红帽企业 Linux 8
我创建了一个.spec
文件来构建和打包我的应用程序。我的rpm
还包括启动它的my_app.service
文件。systemd
但是,默认情况下必须使用 来启用此功能systemctl enable my_app.service
。我想在之后启用它rpm
安装后启用它。我用谷歌搜索发现我可以使用systemd.预设,其中说:
不建议在实现单元的相应软件包中传送预设文件,而是将它们集中在分发或旋转默认策略中,可以通过管理员策略进行修改。
这是否意味着我不应该.preset
在我的 rpm 中添加文件?此外,该页面后面man
还写着:
如果不存在预设文件,systemctl预设将启用默认安装的所有单元。
如果我读得正确,那么我的应用程序的服务文件应该自动启用,但它没有发生,或者这意味着手册systemctl preset
?
答案1
这是否意味着我不应该在 rpm 中添加 .preset 文件?
是的,您不应该将 .preset 文件放入服务的 RPM 包中
但这并没有发生
它没有发生,因为systemd
RHEL 中的软件包附带了默认预设/usr/lib/systemd/system-preset/90-systemd.preset
。
如果您想遵守分发包装指南,您有两种选择,即:
- 联系操作系统的打包程序以将您的应用程序服务包含到默认预设中
- 更可行的是,创建您自己的运输预设包。通常,您将预设放在自己存储库的“发布”包中。一个例子是
epel-release
,它会安装/usr/lib/systemd/system-preset/90-epel.preset
其他东西。