springboot的jar包设置开机启动(centos7)

返回
Author Avatar
钢翼
2024-10-28
编程
88

为了方便查看控制台日志,推荐使用sceen方式启动。

1.创建启动脚本startup.sh。内容如下

#!/bin/bash
# 不加会在通过服务启动时,无法找到环境变量
source /etc/profile
# 会话名
screen_name="xxx"
screen -S $screen_name -X quit || true
# 创建一个会话
screen -dmS $screen_name
# 进入会话并输入指令。这里是切换到jar包目录的指令
screen -x -S $screen_name -p 0 -X stuff "cd /opt/xxx"
# 进入会话并执行指令
screen -x -S $screen_name -p 0 -X stuff $'\n'
# 进入会话并输入指令。这里是执行jar包的指令
screen -x -S $screen_name -p 0 -X stuff "java -Djava.ext.dirs=./lib:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/lib/ext -Dfile.encoding=utf-8 -Dpolyglot.engine.WarnInterpreterOnly=false -jar xxx.jar "
# 进入会话并执行指令
screen -x -S $screen_name -p 0 -X stuff $'\n'

shutdown.sh

#!/bin/bash
screen_name="xxx"
screen -S $screen_name -X quit

2.设置脚本权限

chmod +x ./startup.sh
chomd +x ./shutdown.sh

3.新建.service文件

vi /usr/lib/systemd/system/xxx.service

内容如下

[Unit]
Description=xxx service

[Service]
ExecStart=/opt/xxx/startup.sh
ExecStop=/opt/xxx/shutdown.sh
RemainAfterExit=yes
KillMode=process
KillSignal=SIGTERM
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

4.加载并启动服务

# 重新加载systemd
systemctl daemon-reload
# 启动服务
systemctl start xxx
# 查看服务状态
systemctl status xxx
# 设置服务开机启动
systemctl endable xxx

5.进入会话查看jar包控制台日志

screen -r xxx