Spring 将应用程序作为服务启动 + VM 选项
Spring boot application as a service + VM Options
我有一个 Spring 引导应用程序,它是使用 Linux 的 systemd 作为服务启动的。
它基于此文档:
http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
使用默认脚本,jar文件启动。它工作正常。
/etc/systemd/system/myapp.服务:
[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
如何添加 JVM 选项以使用 systemd 启动应用程序?
根据 documentation,您可以简单地添加一个环境变量 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
基本上直接获取 ENV 配置会将 ENV 变量暴露给应用程序
我终于在这里找到了解决方案:
how to configure heap size when start a spring-boot application with embedded tomcat?
我的 .conf 文件的内容有误。
我也需要写这个:
export JAVA_OPTS="-Xms256m -Xmx512m"
现在当我 运行 "service myapp start" 时,它从良好的堆大小开始。
另一个好方法是在与 myapp.jar
文件
相同的目录中创建一个配置文件 myapp.conf
/var/myapp/
并输入以下内容:
JAVA_OPTS="-Xms256m -Xmx512m"
然后重新启动应用程序。
注意配置文件的名称除了扩展名外要与jar文件相同,.conf
而不是.jar
或.war
。
这种方式还有其他一些优点:
- 仅为
myapp
应用程序单独保留设置。
- 我们也可以在文件中添加其他参数。
可以找到更多详细信息 here。
我有一个 Spring 引导应用程序,它是使用 Linux 的 systemd 作为服务启动的。
它基于此文档: http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
使用默认脚本,jar文件启动。它工作正常。
/etc/systemd/system/myapp.服务:
[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
如何添加 JVM 选项以使用 systemd 启动应用程序?
根据 documentation,您可以简单地添加一个环境变量 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
基本上直接获取 ENV 配置会将 ENV 变量暴露给应用程序
我终于在这里找到了解决方案: how to configure heap size when start a spring-boot application with embedded tomcat?
我的 .conf 文件的内容有误。 我也需要写这个:
export JAVA_OPTS="-Xms256m -Xmx512m"
现在当我 运行 "service myapp start" 时,它从良好的堆大小开始。
另一个好方法是在与 myapp.jar
文件
myapp.conf
/var/myapp/
并输入以下内容:
JAVA_OPTS="-Xms256m -Xmx512m"
然后重新启动应用程序。
注意配置文件的名称除了扩展名外要与jar文件相同,.conf
而不是.jar
或.war
。
这种方式还有其他一些优点:
- 仅为
myapp
应用程序单独保留设置。 - 我们也可以在文件中添加其他参数。
可以找到更多详细信息 here。