Spring Boot应用作为服务 + VM选项

6

我有一个Spring Boot应用程序,通过Linux的systemd作为服务启动。

它基于这份文档: http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

使用默认脚本,JAR文件可以正常启动。

/etc/systemd/system/myapp.service :

[Unit]
Description=myapp
After=syslog.target

[Service]
User=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

现在我想在启动jar文件时添加VM选项。 我尝试将.conf文件添加到项目中,但无效。
/var/myapp/myapp.conf:
JAVA_OPTS=-Xms256M -Xmx512M

我该如何在systemd中添加JVM选项以启动应用程序?
3个回答

5

2
根据文档,如果您只需要添加一个环境变量JAVA_OPTS,那么您可以简单地这样做。
对于您的项目,我们使用自定义ENV变量和systemd启动应用程序的方式如下:
[Unit]
Description=myapp
After=syslog.target

[Service]
User=myapp
ExecStart=source /var/myapp/myapp.conf; java -jar /var/myapp/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

基本上直接获取环境配置将会使得应用程序暴露出环境变量。


谢谢你的回答。我尝试了这个方法,但对我来说不起作用。 - YLombardi

1
另一种好的方法是在与myapp.jar文件相同的目录中创建一个配置文件myapp.conf
/var/myapp/

并放置以下内容:
JAVA_OPTS="-Xms256m -Xmx512m"

然后重新启动应用程序。

请注意,配置文件的名称应与jar文件相同,除了扩展名,.conf而不是.jar.war

这种方式还有其他优点:

  • 仅为myapp应用程序单独保留设置。
  • 我们也可以在文件中添加其他参数。

更多详细信息可以在这里找到。


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