问题描述
我有一个非常简单的单元文件,它带有我打包到 RPM 文件的服务。这个 RPM 文件是在 Fedora 28 上构建和安装的。
我的服务文件再简单不过了:
[Unit]
Description=Hello Work
[Service]
ExecStart=/usr/bin/executable
[Install]
WantedBy=multi-user.target
%post
%systemd_post %{name}.service
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
服务文件通过
正确复制mkdir -p %{buildroot}%{_unitdir}/
cp %{name}.service %{buildroot}%{_unitdir}/
在 %install
部分。
当我安装包时,服务没有启动。当我手动运行时
systemctl enable <service-name>
它有效。
我的安装没有启用和启动我的服务的错误在哪里?
解决方法
查看 documentation 时,它没有说 %systemd_post
启动您的服务。它们指的是 systemd.preset:您需要定义并打包一个 %{name}.preset
文件,该文件指定您的服务应默认启用。
这应该会启用您的软件包默认情况下。
我不完全确定现在您的包是否会启动默认情况下,但它看起来像 :)