从 RPM 安装 systemd 服务?

从 RPM 安装 systemd 服务?

我一直在创建 RPMS(使用 CMake 的 CPack),将所有内容安装到 中/opt,然后安装后脚本将服务定义文件复制到/etc/systemd/system

我也尝试过在 RPM 安装后和卸载前脚本中启动和停止服务,但这似乎不是一个好主意,因为yum如果进行升级,则会在卸载前脚本之前运行安装后脚本,这意味着如果您尝试升级服务,最终服务将无法运行。即使启用/禁用似乎也有同样的问题。

所以我有两个问题

  1. 直接安装到 是否是个好主意/etc/systemd,还是应该在安装后将 复制/opt/etc/systemdcp接下来是systemctl daemon-reload安装服务文件的“正确”方法吗?

  2. 有没有一种干净的方式starting/stopping/enable/disable从 RPM 中提供服务,或者最好将其排除在 RPM 之外?

与 Debian 相关的问题(尚无答案):

从 Debian 包安装中启用 systemd.service 的首选/惯用方法

答案1

看: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd

在脚本中,您可以使用 $1 变量来检测是升级还是全新安装,还是升级还是删除包。变量的值定义如下: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax

相关内容