SpringBoot 项目快速启动脚本

版权声明:本文为博主原创文章,如需转载请注明原文出处: https://blog.csdn.net/u010979642/article/details/90752556

配置说明

修改脚本 run.sh 中的 workSpacejarName 以及 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

# 工作空间, 项目jar包及启动脚本run.sh 所在的目录
workSpace="/home/ubuntu/aal-answer"
# 项目 jar 包名称
jarName="aal-answer-0.0.1-SNAPSHOT.jar"
# 项目名称
projectName="aal-answer"
jarPath="${workSpace}/${jarName}"

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

if [ -z "${MODE}" ];then
  echo "start mode can not be empty."
  echo "Format: bash run.sh up | down | restart | status"
  exit 1
fi

if [ -z "${modes[$MODE]}" ]; then
  echo "不存在选项: [${MODE}]"
  echo "Format: bash run.sh up | down | restart | status"
  exit 1
fi

pid=`ps -ef | grep ${jarName} | grep -v "grep" | awk '{print $2}'`

if [ ${MODE} == "up" ]; then
  if [ -z ${pid} ];then
    java -jar ${jarPath} &
  else
    echo -e "\nservice ${projectName} is already running.\n"
  fi
elif [ ${MODE} == "down" ]; then
  if [ -z ${pid} ];then
    echo -e "\nservice ${projectName} is not running.\n"
  else
    kill -9 ${pid}
    echo -e "\nstop service: "$?"\n"
  fi
elif [ ${MODE} == "restart" ]; then
  if [ -n ${pid} ];then
    kill -9 ${pid}
  fi

  java -jar ${jarName} &
elif [ ${MODE} == "status" ]; then
  if [ -z ${pid} ];then
    echo -e "\nservice ${projectName} is not running.\n"
  else
    echo -e "\nservice ${projectName} is running and pid: ${pid}.\n"
  fi
else
  echo "mode:${MODE} is invalid."
  exit 1
fi

echo -e "####### operate ${projectName} ${MODE} end. #######\n"

exit 0

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

猜你喜欢

转载自blog.csdn.net/u010979642/article/details/90752556
今日推荐