【问题标题】:How to specify JVM Parameters inside Spring Boot Project when executed with init.d使用 init.d 执行时如何在 Spring Boot 项目中指定 JVM 参数
【发布时间】:2017-10-27 11:57:15
【问题描述】:

我有一个 Spring Boot 项目,我正在以可执行 jar 的形式运行,该 jar 在 Linux 上作为 init.d 服务启动。

我知道我可以创建一个与 jar 文件同名的 .conf 文件来指定 JVM 参数。但是,理想情况下,我希望对一些参数进行“硬编码”,这样就不会有 .conf 文件丢失的风险。这是一个真正的风险,因为每个部署都会因为版本号而具有不同的 jar 名称。

我也知道我可以设置环境变量 JAVA_OPTS,但如果我使用 jar 文件的符号链接将 Spring Boot 作为 init.d 服务启动,我不确定如何设置。

最后,我知道我可以使用 embeddedLaunchScript 参数完全替换 init.d 脚本,但我为我想要完成的任务而放弃了这种过度杀伤力,并希望在进一步的版本中更新脚本。

有没有办法在 Maven 插件或其他一些编程方法中指定 JVM 参数?

另外有没有办法硬编码静态 CONF 文件名?查看embeddedLaunchScriptProperties 看起来 confFolder 可以是文件夹,但不是 .conf 文件的名称。

【问题讨论】:

  • 我想我对选项有充分的了解,但想确保在输入改进 Maven 插件以允许将 JVM 参数传递给 EmbeddedLaunchScript 的功能请求之前没有遗漏任何内容- 谢谢
  • 我认为这个答案可以解决您的问题:serverfault.com/a/462073
  • 如果我理解这个答案,它涉及创建一个自定义脚本并使用 init.d 使该脚本成为服务我知道这是一个选项,但最终目标是使用参数部署文件,因此 embeddedLaunchScript相当于那个答案。
  • 找到一些对此请求的评论github.com/spring-projects/spring-boot/issues/2797
  • 仅供参考,github.com/spring-projects/spring-boot/issues/2797 已重新打开,我正在实施解决方案。我会在发布时给出答案。

标签: spring-boot jvm-arguments init.d


【解决方案1】:

从 Spring boot 2.0 开始,您可以设置构建插件的 inlinedConfScript 属性。您现在可以在应用程序启动之前引用包含附加或覆盖 JAVA_OPTS 变量的文件。更多详情请见Spring Documentation

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 2016-01-08
    • 2019-01-15
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多