Shell 简单的java微服务jar包 -- 启动脚本

#!/bin/bash

# 接收服务名
PJT_name=$1
PJT_DIR=/apps/project/
# 接受 start status stop 参数
service=$2
# 获取主机名判断Eureka服务启动的 参数
HOSTNAME=`hostname`
dic=("grab_cycle_eureka" "grab_cycle_ubikeuser1" "grab_cycle_config" "grab_cycle_gateway" "grab_cycle_ubikeuser" "grab_cycle_timing" "grab_cycle_MKexternal" "grab_cycle_MKcore" "grab_cycle_MKpay" "grab_cycle_MKstatistic" "grab_cycle_MKridingorder" "grab_cycle_MKfeedback" "grab_cycle_MKjarvis" "grab_cycle_MKbike" "grab_cycle_ubikelock" "grab_cycle_ubikeinfra" "grab_cycle_ubikeHwtest" "grab_cycle_WulianBle" "grab_cycle_mqttserver" "grab_cycle_mqttserver")

start_p(){
  for key in $(echo ${dic[*]})
  do
    #if [[ $PJT_name == ${key} ]]  && [[ ${key} == "grab_cycle_eureka" ]] && [[ ${HOSTNAME} == "Xgrabcycle-prod-cycle-002" ]];then
    if [ $PJT_name == ${key} -a ${key} == "grab_cycle_eureka"  -a  ${HOSTNAME} == "Xgrabcycle-prod-cycle-002" ];then 
        nohup "/apps/sofe/jdk1.8.0_131/bin/java -jar  -Xms2048M -Xmx4096M -XX:+UseConcMarkSweepGC -XX:-PrintGCDetails -Dspring.profiles.active=prod2  ${key}.jar  >> /apps/project/${key}/${key}.log 2>&1 &"
        sleep 3
        start_pid=`ps -ef | grep "${PJT_DIR}${PJT_name}" | egrep -v "grep"|awk -F'[ ;]+' '{print $2}'`
        echo $start_pid
        if [[ -n $start_pid ]];then
            echo "$PJT_name started is success"
        else
            echo "$PJT_name started is failed"
        fi
    else
        if [[ $PJT_name == "${key}" ]];then
        nohup "/apps/sofe/jdk1.8.0_131/bin/java -jar  -Xms2048M -Xmx4096M -XX:+UseConcMarkSweepGC -XX:-PrintGCDetails -Dspring.profiles.active=prod1  ${key}.jar  >> /apps/project/${key}/${key}.log 2>&1 &"
        sleep 3
        start_pid=`ps -ef | grep "${PJT_DIR}${PJT_name}" | egrep -v "grep" |awk -F'[ ;]+' '{print $2}'`
        echo $start_pid
        if [[ -n $start_pid ]];then
                echo "$PJT_name started is success"
        else
                echo "$PJT_name started is failed"
        fi
        fi
    fi
  done
}

stop_p(){
  for key in $(echo ${dic[*]})
  do
    if [[ $PJT_name == "${key}" ]];then
        pid_number=`ps -ef | grep "${PJT_DIR}${PJT_name}" | egrep -v "grep"|awk -F'[ ;]+' '{print $2}'`
        echo $pid_number
        kill -9 $pid_number
        if [ $? -eq 0 ];then
            echo "$PJT_name shutdown is success"
        else
            echo "$PJT_name shutdown is failed"
        fi
    fi
  done
}

status_p(){
  for key in $(echo ${dic[*]})
  do
    if [[ $PJT_name == "${key}" ]];then
        pid_number=`ps -ef | grep "${PJT_DIR}${PJT_name}" | egrep -v "grep|bash" | awk -F'[ ;]+' '{print $2}'`
        echo $pid_number
        if [[ -n $pid_number ]];then
            echo "$PJT_name  is running"
        else
            echo "$PJT_name  is stoped"
        fi
    fi
  done
}

case "$2" in 
  start)
        start_p
  ;;
  stop)
        stop_p
  ;;
  status)
        status_p
  ;;
  *)
  echo $"Usage: $0 project_name {start|stop|status}"
        exit 2
esac