RPM安装后自动激活服务

RPM安装后自动激活服务

操作系统 - 红帽企业 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 包中

但这并没有发生

它没有发生,因为systemdRHEL 中的软件包附带了默认预设/usr/lib/systemd/system-preset/90-systemd.preset

如果您想遵守分发包装指南,您有两种选择,即:

  • 联系操作系统的打包程序以将您的应用程序服务包含到默认预设中
  • 更可行的是,创建您自己的运输预设包。通常,您将预设放在自己存储库的“发布”包中。一个例子是epel-release,它会安装/usr/lib/systemd/system-preset/90-epel.preset其他东西。

相关内容