我使用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时,服务仍会自动启动。是否需要其他配置?
答案 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中实现。