Spring Boot微服务集群快速注册启动脚本

#!/bin/bash


app_name=$1

pid=`ps aux | grep java | grep ${app_name} | grep -v "grep" | awk '{print $2}'`

name=`sed -n "4p" /etc/hosts | awk '{print $2}'`


usags() {

    echo "Usags: boot [eureka|location|config|auth|emqtt|gateway|notification|phonestatisctis] [start|stop|status]"

    exit 1

}


#检查程序是否在运行

is_exist() {

    if [ -z "${pid}" ];then

      return 1

    else

      return 0

    fi

}


#启动

is_start() {

    is_exist

    if [ $? -eq "0" ];then

      echo "${app_name} is running"

    else

     if [ $app_name == "auth" ];then

        cd /application/jar/$app_name

        >nohup.out

        nohup java -server -Xms1024m -Xmx1204m -jar workos-${app_name}-server.jar > nohup.out 2>&1 &

     elif [ $app_name == "notification" ];then

        cd /application/jar/$app_name

        >nohup.out

        nohup java -server -Xms512m -Xmx512m -jar workos-${app_name}-server.jar > nohup.out 2>&1 &

     elif [ $app_name == "location" ] || [ $app_name == "phonestatisctis" ];then

        cd /application/jar/$app_name

        >nohup.out

        nohup java -server -Xms512m -Xmx512m -jar workos-${app_name}.jar > nohup.out 2>&1 &

     elif [ $app_name == "gateway" ];then

        cd /application/jar/$app_name

        >nohup.out

        nohup java -server -Xms1024m -Xmx1204m -jar workos-${app_name}.jar > nohup.out 2>&1 &

     else

        cd /application/jar/$app_name

        >nohup.out

        nohup java -server -Xms256m -Xmx256m -jar workos-${app_name}.jar > nohup.out 2>&1 &   

     fi

    fi

}


#停止

is_stop() {

   port=`ss -lntup | grep ${pid} | grep -v "grep" | awk -F '[ :]+' '{print $6}'`

   is_exist

    if [ $? -eq "0" ];then

      if [ $app_name == "auth" ] || [ $app_name == "notification" ] || [ $app_name == "location" ] || [ $app_name == "emqtt" ];then

        kill -9 $pid

        curl -u workos:workos  -X DELETE "http://172.17.247.119:8761/eureka/apps/${app_name}-service/${name}:${app_name}-service:${port}" > /dev/null 2>&1

        curl -u workos:workos  -X DELETE "http://172.17.247.110:8761/eureka/apps/${app_name}-service/${name}:${app_name}-service:${port}" > /dev/null 2>&1 

      elif [ $app_name == "eureka" ];then

        kill -9 $pid

      else

        kill -9 $pid

        curl -u workos:workos  -X DELETE "http://172.17.247.119:8761/eureka/apps/workos-${app_name}/${name}:workos-${app_name}:${port}" > /dev/null 2>&1

        curl -u workos:workos  -X DELETE "http://172.17.247.110:8761/eureka/apps/workos-${app_name}/${name}:workos-${app_name}:${port}" > /dev/null 2>&1

      fi

    else

      echo "${app_name} is not running"

    fi

}


#状态

is_status() {

    is_exist

    if [ $? -eq "0" ];then

      echo "${app_name} is running"

    else

      echo "${app_name} is no running"

    fi

}


#根据输入参数,选择执行方法

case $1 in

  auth|config|eureka|gateway|location|notification|phonestatisctis)

    case $2 in

     start)

       is_start

     ;;

     stop)

       is_stop

     ;;

     status)

      is_status

     ;;

     *)

     usags

   esac

   ;;

  *)

    usags

  ;;

esac 


猜你喜欢

转载自blog.51cto.com/13520761/2519869
今日推荐