如果不使用DockerKubernets部署管理SpringBoot应用,可以选择Systemd

因为SpringBoot自带Tomcat之类的Web应用服务器,可以直接java -jar xxx.jar的方式启动起来。

如果我们直接使用nohup java -jar xxx.jar & 之类的虽然也可以实现后台运行,但是是有可能因为某些原因挂掉的,所以我们需要找到一种工具让应用可以重启或者开机启动。

我们可以使用Python的Supervisor,也有盆友说可以使用Node的pm2,但是我一般都是选择Systemd,现在Linux系统都是自带这个的。

步骤

生成jar包:进入到SpringBoot项目的目录,然后执行:mvn clean package,找到target目录里面的jar包。

上传jar包:scp -P xx_port xxx.jar username@host:./

SSH登录进入服务器之后,首先需要安装JDK,然后把jar包复制到/home/www/applications

在/etc/systemd/system/目录下面新建一个service的配置,配置内容参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=service-test
After=syslog.target
[Service]
User=root
WorkingDirectory=/home/www/applications
Restart=always
ExecStart=/usr/local/jdk1.8.0_161/bin/java -jar /home/www/applications/service-test-1.0.jar
ExecStop=/usr/bin/kill -15 $MAINPID
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

新增一个新的service之后,需要让配置生效,如果修改配置文件,需要reload。

使xx service生效:
systemctl enable xx.service

刷新配置:
systemctl daemon-reload

启动xx service:

systemctl start xx.service

查看xx service的status:

systemctl status xx.service

重启xx service:

systemctl restart xx.service

看xx service日志,按住shift+g可以跳转到最后一行:

journalctl -u xx.service

动态像tail -f xxfile一样查看对应service的日志:

journalctl -f xx.service