使用sh脚本 优雅的部署SpringBoot项目 使用sh脚本 优雅的部署SpringBoot项目

SpringBoot的工程,一般都会打一个jar包,我们在启动时 时常需要nohup java -jar xxx.jar >xx.log &,有时还会添加一些启动参数、环境变量等。最终项目交付给客户每次启动都输入这么多参数难免有些麻烦。我们可以编写一个shell脚本来完成服务的启动、停止、重启、查看状态等操作。

Linux shell

只需要将此脚本拷贝到项目同级目录,修改下面代码中第一行的jar包名字即可

#配置jar名称
APP_NAME=xxx.jar

#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
exit 1
}

#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}

#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -jar $APP_NAME > log.file 2>&1 &
echo "${APP_NAME} start success"
fi
}

#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}

#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}

#重启
restart(){
stop
start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac

接下来演示如何使用:

# 启动
./start.sh start

# 停止
./start.sh stop

# 重启
./start.sh restart

# 查看状态
./start.sh status

如果需要定制化的功能,例如修改启动参数等,可以修改对应方法中的代码。

windows bat

@echo off
# jre的路径
set path=C:Program FilesJavajdk1.8.0_202jrein
START "SinoEncryption" "%path%java" -jar xx.jar

编辑后右键此bat文件,以管理员身份运行即可