部署boot项目sh脚本

2022-08-21 14:01:26 浏览数 (1)

分享一个部署boot项目的sh脚本

代码语言:javascript复制
#环境变量
source /etc/profile
#!/bin/sh
#jdk
JAVA_HOME=/此处换成真实jdk路径
export PATH=$PATH:$JAVA_HOME/bin
export BUILD_ID=dontkillme
#定义程序名 及jar包的名
PROJECT_NAME=此处换成真实jar名称.jar
LOG_NAME=日志名.log
## 编写判断程序是否正在运行的方法
isExist() {
  ## 首先查找进程号
  pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
  echo "${pid}"
  ## 如果进程号不存在,则返回0 否则返回1
  if [ -z "${pid}" ]; then
    return 0
  else
    return 1
  fi
}
## 编写启动程序方法
start() {
  ## 调用 判断程序是否正在运行的方法
  isExist
  ## 判断方法返回值是否等于0 ,等于则不存在
  if [ $? -eq "0" ]; then
    echo "${PROJECT_NAME} is starting ......"
    nohup java  -jar ${PROJECT_NAME} --spring.profiles.active=prod >${LOG_NAME} 2>&1 &
    echo "${PROJECT_NAME} startup success"
  else
    echo "${PROJECT_NAME} is already running, pid=${pid}"
    restart
  fi
}
## 编写停止程序的方法
stop() {
  ## 调用 判断程序是否正在运行
  isExist
  ## 判断是否存在,返回值0不存在
  if [ $? -eq "0" ]; then
    echo "${PROJECT_NAME} is not running ......"
  else
    echo "${PROJECT_NAME} is already running, pid=${pid}, prepare kill it "
    kill -9 ${pid}
    echo "${PROJECT_NAME} has been successfully killed ......"
  fi
}
## 编写重启方法
restart() {
  ## 先停止再启动
  stop
  start
}

## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
"start")
  start
  ;;
"stop")
  stop
  ;;
"restart")
  restart
  ;;
*)
  echo "please enter the correct commands: "
  echo "such as : sh startup.sh [ start | stop | restart ]"
  ;;
esac

0 人点赞