【问题标题】:Spring boot app setting specific java version in systemd unitSpring Boot 应用程序在 systemd 单元中设置特定的 java 版本
【发布时间】:2020-05-12 08:46:40
【问题描述】:

我已将可运行 jar 安装为 systemd 服务,但它没有选择我在 .conf 文件中设置的 jvm 选项。我的 jar 和 conf 文件位于同一个文件夹中。我必须使用 conf 文件来为不同的设置获取外部配置。我已经指定了 java 路径,因为我们在同一主机上运行 java 8 作为其他 java 服务的默认值。

系统单位

[Unit]
Description="My service"
After=syslog.target

[Service]
WorkingDirectory=/opt/myfolder/my-app-folder

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin"
User=my-user

ExecStart=/usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/bin/java -jar /opt/myfolder/my-app-folder/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

配置文件

JAVA_OPTS="-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -Djava.net.preferIPv4Stack=true -Xms512M -Xmx1024M -XX:+UseStringDeduplication -Djava.io.tmpdir=/tmp/my-app -Dspring.profiles.active=test -Duser.timezone=UTC -Dloader.path=lib"
RUN_ARGS="--management.endpoints.web.exposure.include=*"

【问题讨论】:

    标签: java spring-boot systemd


    【解决方案1】:

    您可能应该使用EnvironmentFile= 并将其指向您的配置。从您提出的问题来看,您似乎想要启动应用程序并读取配置,但这没有意义。

    另外,不要使用 JDK 的完整路径,我认为在你的情况下你最好使用/etc/alternatives/jre_11_openjdk - 它链接到同一个地方,但如果你更新包版本,你不会收到错误服务启动/重启/等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 2016-04-03
      • 2017-01-30
      • 2022-07-08
      • 1970-01-01
      相关资源
      最近更新 更多