从 RPM 安装 systemd 服务?

Mar*_*ata 8 linux rpm systemd

我一直在创建 RPMS(使用 CMake 的 CPack),将所有内容/opt安装到/etc/systemd/system.

我也在 RPM postinstall 和 preuninstall 脚本中尝试启动和停止服务,但这似乎不是一个好主意,因为yum如果进行升级,将在 preuninstall 脚本之前运行 postinstall 脚本,并且意味着如果您尝试升级服务,您最终会发现该服务无论如何都无法运行。即使启用/禁用似乎也有同样的问题。

所以我有两个问题

  1. 直接安装到 是一个好主意/etc/systemd,还是应该从安装后复制/opt/etc/systemd?被cp随后systemctl daemon-reload安装该服务文件的“正确”的方式?

  2. starting/stopping/enable/disableRPM是否有一种干净的服务方式,还是最好将其排除在 RPM 之外?

Debian 的相关问题(没有答案):

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

小智 4

请参阅: https ://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd

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