很久之前,我写过一个脚本用于重启Spring Boot应用,但最近在看Spring Boot文档,发现之前写的的确不够优雅
Spring Boot 文档中,有一大章专门写关于如何在系统中部署,其中,个人认为最佳的方案是作为一个systemd服务运行,由Liunx服务直接调度
编译一个可执行的Jar
首先,我们需于改变我们的Jar,能在Linux系统中直接运行
在Maven中,添加executable配置为true
1 |
|
或者,如果你使用的是Gradle,添加launchScript()
1 |
|
注意:可执行的Jar由于嵌入了脚本,所以无法通过jar -xf
命令解压
创建systemd服务
在/etc/systemd/system
文件下,创建myapp.service
(假设你的服务名叫做myapp,请依据实际情况修改)
1 |
|
上传Jar
我们需要上传并将生成的可执行Jar,放在与myapp.service
中ExecStart
相同的位置
运行systemd服务
当我们完成上面步骤,就可以直接通过systemctl
来运行或控制Spring Boot应用
1 |
|
这是不是比用pgrep
pgrep
java -jar
之类的简单方便多了