一尘不染

Spring Boot应用程序即服务

spring-boot

如何在Linux系统中很好地配置打包为可执行jar作为服务的Spring
Boot应用程序?是推荐的方法,还是应该将此应用转换为war并安装到Tomcat中?

目前,我可以从screen会话运行Spring Boot应用程序,这很好,但是需要在服务器重启后手动启动。

init.d如果我使用可执行 jar的 方法正确,那么我正在寻找的是一般建议/指导或示例脚本。


阅读 432

收藏
2020-05-30

共1个答案

一尘不染

以下内容适用于springboot 1.3及更高版本:

作为init.d服务

可执行jar具有通常的启动,停止,重新启动和状态命令。还将在通常的/ var / run目录中设置PID文件,并默认登录在通常的/ var /
log目录中。

您只需要像这样将jar链接到/etc/init.d

sudo link -s /var/myapp/myapp.jar /etc/init.d/myapp

要么

sudo ln -s ~/myproject/build/libs/myapp-1.0.jar /etc/init.d/myapp_servicename

之后,您可以照常做

/etc/init.d/myapp start

然后,根据需要在您希望应用在启动时启动/停止的运行级别中设置一个链接。


作为系统服务

要运行安装在var / myapp中的Spring
Boot应用程序,您可以在/etc/systemd/system/myapp.service中添加以下脚本:

[Unit]
Description=myapp
After=syslog.target

[Service]
ExecStart=/var/myapp/myapp.jar

[Install]
WantedBy=multi-user.target

注意:如果您正在使用此方法,请不要忘记使jar文件本身可执行(使用chmod + x),否则它将因错误“权限被拒绝”而失败。

参考

http://docs.spring.io/spring-boot/docs/current-
SNAPSHOT/reference/html/deployment-install.html#deployment-
service

2020-05-30