fedora - 为什么spec-file中使用的%systemd_post在安装后没有启用或启动服务?
问题描述
我有一个非常简单的单元文件,它带有我打包到 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>
有用。
安装没有启用和启动我的服务的错误在哪里?
解决方案
查看文档时,并没有说%systemd_post
启动您的服务。它们指的是systemd.preset:您需要定义并打包一个%{name}.preset
文件,该文件指定您的服务应默认启用。
这应该默认启用您的包。
我不完全确定现在您的包将默认启动,但看起来像这样:)
推荐阅读
- c# - RestSharp“未找到”响应
- c++ - 将 std::thread 按值推入列表
- ruby-on-rails - delete_if 返回未定义的方法“包括?” 对于零:NilClass
- security - InitialisationException: KeyStore 必须为 Mule Esb 中的服务器端 SSL 配置
- c++ - #pragma 警告(禁用:4251)不适用于第 3 方 sdk
- python - Python:翻译文本显示 msgid 而不是 msgstr
- visual-studio - 从 VS 发布用于特定构建配置的 Service Fabric
- http - JWT 和大型 Roles 数据最佳实践?
- windows - 关于在 Windows 10 中访问 shell 上下文菜单的问题
- prolog - 最深的树节点和距离