Spring Boot应用程序配置成Linux系统自启动服务

把Spring Boot应用加入Linux系统自启动服务,对Spring Boot程序包而言很简单。

Spring Boot 开机自启动(Linux)

Spring Boot程序打包成jar文件上传到Linux服务器,为了确认Spring Boot应用程序打包、和运行环境都没有问题,可以先用java -jar 命令运行应用程序确保正确。

假如应用程序的更新,直接替换jar文件,通过系统restart命令进行重启,在一些场景中也是不错的选择。

这里假定应用程序jar文件放在/var/app目录下,先通过一条Linux软链接命令,把Spring Boot应用程序链接到Linux init.d服务中。

为Spring Boot建立Linux软链接

--shell-*$ sudo ln -s /var/app/myapp.jar /etc/init.d/myapp

赋于Spring Boot应用执行权限

赋于jar文件执行权限,命令如下(重新上传后也需要执行)。

$ chmod 500 myapp.jar

配置Spring Boot为Linux系统服务

配置系统服务脚本,以CentOS系统为例。

$ cd /etc/systemd/system

$vim myapp.service

在/etc/systemd/system目录下,为Spring Boot应用程序myapp.jar创建系统服务脚本。

[Unit]
Description=myapp
After=syslog.target

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

[Install]
WantedBy=multi-user.target

以上是为基本的配置,但足以保证应用程序作为系统服务被调用。其中的Description、User和ExecStart三项,需要根据具体情况稍加修改。

设置Spring Boot开机自启动

完成了基本配置后,启用自启动状态位,以CentOS 7命令为例。

$ systemctl enable myapp.service

在运行之前,确保应用程序jar文件有运行权限,即:chmod 500 myapp.jar,尤其在更新应用时重新上传了文件。

以Linux服务的方式启动Spring Boot

$ systemctl start myapp

查看Spring Boot服务状态

$ systemctl status myapp

如果显示 Active: active (running) ,则表示服务已正确启动。

重启Spring Boot服务

systemctl restart myapp

以上就是将Spring Boot应用程序,做成Linux系统自启动服务的过程,更多细节参考spring boot手册中的系统部署环节。