安装rpm后systemctl daemon-reload

systemctl daemon-reload after installation of rpm

我用 nfpm 创建了一个 RPM。当 RPM 安装在 OEL 7.x 系统上时,它需要我重新加载单元文件,然后才能启动服务。

systemctl daemon-reload

我该如何让 RPM 重新加载,以便服务可以启动,并在重新启动时启用?

因为这可能是特定于 nfpm 配置 (YAML) 的,所以我也不介意原生 RPM 规范文件透视图。

提前致谢。

你可以把它放在 %post 部分:

%post
systemctl daemon-reload

虽然我们正在这样做,但我发现了一些在卸载包时进行清理的好习惯:

%preun
if [  == 0 ]; then #uninstall
  systemctl unmask %{name}.service
  systemctl stop %{name}.service
  systemctl disable %{name}.service
fi

%postun
if [  == 0 ]; then #uninstall
  systemctl daemon-reload
  systemctl reset-failed
fi