0
点赞
收藏
分享

微信扫一扫

SpringBoot 项目快速启动脚本

奔跑的酆 2022-12-03 阅读 82


配置说明

修改脚本 run.sh 中的 ​​workSpace​​​、 ​​jarName​​​ 以及 ​​projectName​​ 变量值, 具体修改说明请参见变量注释说明

 

命令说明

  • 启动服务: bash run.sh up
  • 停止服务: bash run.sh down
  • 重启服务: bash run.sh restart
  • 查看状态: bash run.sh status

 

脚本源码

run.sh

#!/usr/bin/env bash
:<<describle
project startup script

author: Answer.AI.L
datetime: 2019-6-3
describle

# 遇到执行非0时退出脚本
# set -e

# 工作空间, 项目jar包及启动脚本run.sh
workSpace="/home/ubuntu/aal-answer"
# 项目 jar 包名称
jarName="aal-answer-0.0.1-SNAPSHOT.jar"
# 项目名称
projectName="aal-answer"
jarPath="${workSpace}/${jarName}"
args="--spring.profiles.active=dev"
# %p变量表示当前jvm的pid,用%t表示jvm的启动时间戳. eg: -Xloggc:./logs/gc-%t.log
options="-Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -Xloggc:./gc/aas_`date +%Y%m%d`.log -XX:HeapDumpPath=./gc/aas-dump_`date +%Y%m%d`.hprof -XX:ErrorFile=./gc/aas-error_`date +%Y%m%d`.log -Duser.timezone=Etc/GMT+8 -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError"


# 定义一个字典
declare -A modes
modes=([up]='start' [down]='stop' [restart]='restart' [status]='status')
[ $1 ] && MODE=$1 || MODE='usage'

dir_arr=('/gc')
# 检查目录是否存在,不存在则生成
check_dir() {
for ele in ${dir_arr[*]}
do
if [ ! -d "${workSpace}${ele}" ]; then
mkdir -p ${workSpace}${ele}
fi
done
}

# 检查程序是否运行
is_running() {
pid=`ps -ef | grep ${jarName} | grep -v "grep" | awk '{print $2}'`
if [ -z ${pid} ]; then
return 1
else
return 0
fi
}

# 启动应用
start() {
is_running
echo "start"
if [ $? -eq "0" ]; then
echo "Application ${projectName} is already running. PID is ${pid} ."
else
nohup java ${options} -jar ${jarPath} ${args} &
echo "Application ${projectName} start success."
fi
}

# 停止应用
stop() {
is_running
echo "stop"
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "Application ${projectName} is not running"
fi
}

# 查看应用状态
status() {
is_running
if [ $? -eq "0" ]; then
echo "Application ${projectName} is running. PID is ${pid}."
else
echo "Application ${projectName} is NOT running."
fi
}

# 重启
restart() {
stop
sleep 2
start
}

check_dir

# 根据输入参数,选择执行对应方法,不输入则执行使用说明
case "${modes[$MODE]}" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
echo "Usage: bash run.sh {up|down|restart|status}" >&2
exit 1
;;
esac

exit 0

脚本源码 github 地址​​: 《​​run.sh​​》

 


举报

相关推荐

0 条评论