Browse Source

测试-自动部署

wuweihao 3 years ago
parent
commit
a8ec83c871
1 changed files with 136 additions and 0 deletions
  1. 136 0
      startJar.sh

+ 136 - 0
startJar.sh

@@ -0,0 +1,136 @@
+APP_NAME=age_convert.jar
+date=`date`
+usage() {
+    echo "case: sh run.sh [start|stop|restart|status|checkServer]"
+    echo "请类似这样执行 ./*.sh start pro  or  ./*sh restart pro"
+    exit 1
+}
+
+checkEnv(){
+      if [ -z "${APP_NAME}" ]; then #判断pid是否为空
+           if [[ $1 = 'pro' ]];   then
+                        echo "pro config"
+                        APP_NAME=720yun_fd_manage_pro.jar
+                      elif  [[ $1 = 'sit' ]] ; then
+                        echo "sit config"
+                        APP_NAME=720yun_fd_manage_sit.jar
+                      elif  [[ $1 = 'devuat' ]] ; then
+                        echo "devuat config"
+                        APP_NAME=720yun_fd_manage_devuat.jar
+                      else
+                        echo "没有设置环境"
+            fi
+     # else
+         #    echo "已经设置-${APP_NAME}-${APP_DEBUG}"
+     fi
+}
+
+# 判断当前服务是否已经启动的函数
+is_exist(){
+    checkEnv $1
+    pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
+    if [ -z "${pid}" ]; then #判断pid是否为空
+        echo "pid 不存在"
+        return 1
+    else
+        echo "pid 存在"
+        return 0
+    fi
+}
+
+
+start(){
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
+        echo "${APP_NAME} running. pid=${pid}"
+    else
+        nohup java -jar $APP_NAME --spring.profiles.active=$1  > logs.log 2>error.log &  # 说明pid为空
+        # 执行java -jar 命令启动服务
+        echo "${APP_NAME} started启动"
+    fi
+}
+
+
+stop(){
+    echo "执行 stop 方法"
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
+        kill -9 $pid
+        echo "${pid} stopped-停止"
+    else
+        echo "${APP_NAME} 没有运行"
+    fi
+}
+
+
+status(){
+    echo "执行 status 方法"
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then
+        echo "${APP_NAME} running-启动. Pid is ${pid}"
+    else
+        echo "${APP_NAME} 没有运行"
+    fi
+}
+
+checkServer(){
+    echo "执行 status 方法"
+    checkEnv $1
+    is_exist
+    if [ $? -eq "0" ]; then
+        echo "${APP_NAME} running-正在运行. Pid is ${pid}"
+        echo `date +%Y-%m-%d` `date +%H:%M:%S` ${APP_NAME} "running-正在运行. Pid is ${pid}" >> check.log
+        exit 0
+    else
+        echo "${APP_NAME} 没有运行,即将重启"
+        echo `date +%Y-%m-%d` `date +%H:%M:%S` ${APP_NAME} "没有运行,即将重启" >> check.log
+        restart  $1
+    fi
+}
+
+# 重启命令其实就是先执行关闭命令 再执行重启命令
+restart(){
+        echo "执行 restart 方法"
+        checkEnv $1
+        is_exist
+        if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
+            kill -9 $pid
+            echo "${pid} stopped-停止"
+        else
+            echo "${APP_NAME} 没有运行"
+        fi
+        sleep 5
+        is_exist
+        if [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
+            echo "${APP_NAME} running. pid=${pid}"
+        else
+            nohup java -jar $APP_NAME --spring.profiles.active=$1  > logs.log 2>error.log &  # 说明pid为空 执行java -jar 命令启动服务
+            echo "${APP_NAME} started启动"
+        fi
+}
+
+
+# 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
+case "$1" in
+    "start")
+        start $2
+        ;;
+    "stop")
+        stop $2
+        ;;
+    "status")
+        status $2
+        ;;
+    "restart")
+        restart $2
+        ;;
+    "checkServer")
+        checkServer $2
+        ;;
+    *)
+    usage
+    ;;
+esac