且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Java:通过Shell脚本控制SpringBoot项目的重新部署

更新时间:2022-08-22 14:28:40

以部署 demo-0.0.1-SNAPSHOT.jar 项目为例

通过两个脚本可以实现对java服务的重新部署

service.sh # 位于服务器上,控制服务启动、停止、重启
deploy.sh  # 位于开发环境中,打包、更新服务器代码并重启

service.sh

#!/bin/bash

# 启动命令
function start(){
    echo "start..."

    nohup java -jar demo-0.0.1-SNAPSHOT.jar >> nohup.out 2>&1 &

    echo "start successful"
    return 0
}

# 停止命令
function stop(){
    echo "stop..."

    ps -ef|grep demo-0.0.1-SNAPSHOT.jar|grep -v grep|awk '{print "kill -9 "$2}'|sh

    echo "stop successful"
    return 0
}

case $1 in
"start")
    start
    ;;
"stop")
    stop
    ;;
"restart")
    stop && start
    ;;
*)
    echo "请输入: start, stop, restart"
    ;;
esac

deploy.sh

#!/bin/bash

# 打包
mvn package && \

# 上传
scp target/demo-0.0.1-SNAPSHOT.jar root@<远程ip>:/www/www.demo.com && \

# 远程重启
ssh root@<远程ip> "cd /www/www.demo.com; bash service.sh restart"

使用方式

服务器上使用

# 启动
bash service.sh start

# 关闭
bash service.sh stop

# 重启
bash service.sh start

本地开发环境中使用

#  重新部署
bash deploy.sh