缘起
几个新的项目使用 Spring Boot,在服务器上的部署方式每次打 jar 包都带个自增长的版本号,如 app-1.0.0.4.jar
,目录为 /opt/www/app/jars/
。
也就是在打新 jar 包的同时保留旧版。
然后使用 Systemd 来管理 jar 包的启动。
步骤
在 /opt/bin/lib/
(或者任意目录) 下创建 app.service
[Unit]
Description=My App
After=syslog.target
[Service]
ExecStart=/opt/bin/lib/app.sh
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
进一步丰富此配置,可增加 Group
、User
等配置 jar 包的执行用户组。
创建 app.sh
#!/bin/bash
java -jar `ls -l /opt/www/app/jars/*.jar | awk '{print $9}' | tail -n 1`
别忘了使此脚本可执行: chmod +x app.sh
此命令用于获得最新版本 jar 包,并通过 java -jar
方式执行。
当然,如果生成的是可执行 jar 包
,则前置的 java -jar
可省略。
整合到 Systemd
systemctl enable /opt/bin/lib/app.service
systemctl start app.service
- 其它可用命令:
status
、stop
等,具体可参见Systemd
文档
Over!