在rpm安装时启用systemd服务

时间:2018-11-22 17:25:08

标签: centos7 systemd rpm-spec

我正在尝试构建一个rpm包,以正确的方式启用systemd服务。

在我的rpm规范文件中,我添加了:

 %{?systemd_requires}
构建需求:systemd

...

%postun
%systemd_postun yeah.service
 

我的rpm副本位于/ usr / lib / systemd / system / yeah.service文件中。

但是在安装软件包之后,该服务仍处于禁用状态:

  root @ ansible-1:1:〜#systemctl status yeah
找不到单元yeah.service。
root @ ansible-1:1:〜#rpm -Uvh /home/intersec/delivery/yeah.rpm
正在准备... ############################### [100%]
更新/安装中...
   1:yeah ################################ [100%]
root @ ansible-1:1:〜#systemctl status是的
●是的服务-是的
   已加载:已加载(/usr/lib/systemd/system/yeah.service;已禁用;供应商预设:已禁用)
   有效:无效(无效)
 

怎么了?

劳尔

2 个答案:

答案 0 :(得分:1)

%postun脚本在卸载后运行。我想您也应该添加

%post
%systemd_post yeah.service

答案 1 :(得分:0)

您需要创建一个预设文件并将其安装到正确的预设目录中。使用 systemd_*-macros 将启用您的服务(但不会启动)。

这需要添加到规范文件的 %install 部分。

%{__install} -Dm644 %{name}.preset %{buildroot}%{_presetdir}/50-%{name}.preset

这是一个预设文件的例子:

enable <your-service-name>.service