如何在使用init.d执行Spring Boot项目时指定JVM参数

3
我有一个Spring Boot项目,作为可执行jar文件在Linux上作为init.d服务运行。
我知道可以创建与jar文件同名的.conf文件来指定JVM参数。但是,我希望能够“硬编码”一些参数,以便没有.conf文件的风险。这是真正的风险,因为每次部署都会因版本号而有不同的jar名称。
此外,我知道可以设置环境变量JAVA_OPTS,但如果我使用符号链接启动Spring Boot作为init.d服务,我不确定如何设置环境变量。
最后,我知道可以使用embeddedLaunchScript参数完全替换init.d脚本,但我认为这对于我想要实现的内容来说过于复杂,并且希望在以后的发布中更新脚本。
是否有一种方法可以在Maven插件或其他编程方法中指定JVM参数?
有没有一种方法可以硬编码静态的CONF文件名?查看embeddedLaunchScriptProperties,似乎confFolder可以是文件夹,但不能是.conf文件的名称。

在提交改进Maven插件以允许将JVM参数传递到embeddedLaunchScript之前,我认为我已经完全理解了选项,但希望确认自己没有遗漏任何内容。谢谢。 - JustinKSU
我认为这个答案是你问题的解决方案:https://serverfault.com/a/462073 - ahjaworski
如果我理解那个答案的话,它涉及创建一个自定义脚本并使用init.d将该脚本作为服务。我理解这是一种选择,但最终目标是使用参数部署文件,因此embeddedLaunchScript等同于该答案。 - JustinKSU
在这个请求https://github.com/spring-projects/spring-boot/issues/2797上发现了一些评论。 - JustinKSU
FYI,https://github.com/spring-projects/spring-boot/issues/2797 已经重新开放,并且我正在实现解决方案。当发布可用时,我会提供答案。 - JustinKSU
显示剩余2条评论
1个回答

0

从Spring Boot 2.0开始,您可以设置构建插件的inlinedConfScript属性。现在,您可以引用一个文件,在应用程序启动之前包含或覆盖JAVA_OPTS变量。更多详细信息可以在Spring文档中找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接