Ubuntu 上通过 Systemd 配置 Spring Boot jar 包自启动

缘起

几个新的项目使用 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

进一步丰富此配置,可增加 GroupUser 等配置 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
  • 其它可用命令:statusstop 等,具体可参见 Systemd 文档

Over!

猜你喜欢

转载自my.oschina.net/someok/blog/1629997