在rpm安装时启用systemd服务



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

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

%{?systemd_requires}
BuildRequires: systemd
...
%postun
%systemd_postun yeah.service

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

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

root@ansible-1:1:~# systemctl status yeah
Unit yeah.service could not be found.
root@ansible-1:1:~# rpm -Uvh /home/intersec/delivery/yeah.rpm
Preparing...                          ################################# [100%]
Updating / installing...
1:yeah################################# [100%]
root@ansible-1:1:~# systemctl status yeah
● yeah.service - Yeah
Loaded: loaded (/usr/lib/systemd/system/yeah.service; disabled; vendor preset: disabled)
Active: inactive (dead)

怎么了?

Raoul

%postun脚本在卸载后运行。我认为你也应该添加

%post
%systemd_post yeah.service

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

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

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

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

enable <your-service-name>.service

最新更新