重写postinst scriptlet以不启动服务并注册它



我使用SBT本机包装器1.2.0-M3来打包Play Framework 2.5.3应用程序作为RPM(针对RHEL 7与systemd)。我想改变生成的RPM的行为,这样它不会在安装后自动启动,而是被启用(systemctl enable <name>.service)。

我一直在遵循http://www.scala-sbt.org/sbt-native-packager/archetypes/java_server/customize.html概述的说明。具体来说,我创建了一个包含单行systemctl enable <name>.service的文件src/rpm/scriptlets/post-rpm。就我对文档的理解,这就是所需要的。但是,在安装RPM时,服务仍然会自动启动。是否需要任何额外的配置?

这是当前的默认行为。这里有一个历史的解释。

你真正需要做的是maintainerScripts in Rpm。有一个helper特性可以简化构建定义。就像

 import RpmConstants._
 maintainerScripts in Rpm := {
     (maintainerScripts in Rpm).value += (
         Post -> "systemctl enable <name>.service"
      )
 }

并且有一个特性请求直接在本机包装器中实现。

相关内容

  • 没有找到相关文章

最新更新