Spring Boot 应用即服务
·
问题:Spring Boot 应用即服务
如何在Linux系统中很好地配置打包为可执行jar即服务的Spring Boot应用程序?这是推荐的方法,还是应该将此应用程序转换为战争并将其安装到 Tomcat 中?
目前,我可以从screen
会话运行 Spring Boot 应用程序,这很好,但需要在服务器重启后手动启动。
我正在寻找的是一般建议/方向或脚本init.d
示例,如果我使用可执行 jar 的方法是正确的。
解答
以下适用于 spring boot 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
更多推荐
所有评论(0)