覆盖postinst脚本以不启动服务并注册它

时间:2016-06-30 11:58:51

标签: sbt sbt-native-packager

我使用SBT native packager 1.2.0-M3将Play Framework 2.5.3应用程序打包为RPM(针对带有systemd的RHEL 7)。我想更改生成的RPM的行为,使其在安装后不会自动启动但正在启用(systemctl enable <name>.service)。

我一直按照http://www.scala-sbt.org/sbt-native-packager/archetypes/java_server/customize.html中列出的说明操作。具体来说,我创建了一个包含单行src/rpm/scriptlets/post-rpm的文件systemctl enable <name>.service。据我了解文档,这就是所需要的。但是,在安装RPM时,服务仍会自动启动。是否需要其他配置?

1 个答案:

答案 0 :(得分:1)

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

您实际需要做的是maintainerScripts in Rpm。 有a helper trait可以减轻构建定义。像

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

并且有一个feature request可以直接在native-packager中实现。