java -jar包服务启停脚本

发布时间 2023-09-20 10:36:16作者: beawh
#! /bin/bash

# jar包路径
serverhome=/home/edge-gateway/mqtt-edge
logspath=$serverhome/logs
JAR_NAME=gateway-edge-mqtt.jar

# 使用说明

usage(){

   echo "Usage: sh backend.sh [start|stop|restart|status]"

   exit 1

}

#是否运行

is_running(){

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

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

    return 1

        else

            return 0

    fi 

}

#启动

start(){

  is_running

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

  echo "$JAR_NAME is running already,pid is ${pid}!"

  else

mkdir -p $logspath
sleep 5
java -server \
-Dspring.config.location=$serverhome/config/ \
-Xloggc:$logspath/gc.log \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:MetaspaceSize=256m \
-Xms1536m -Xmx2560m \
-jar gateway-edge-mqtt.jar  > /dev/null 2>&1 &

  sleep 3

  is_running

  if [ $? -eq 0 ]; then

  echo "$JAR_NAME run successful!"

  else

  echo "$JAR_NAME run failed!"

  fi

  fi

}



#关闭

stop(){

    is_running

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

    kill -9 $pid

    else

    echo "$JAR_NAME is stoped already!"

    fi

}

#状态

status(){

  is_running

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

  echo "$JAR_NAME is running, pid is ${pid}"

  else

  echo "$JAR_NAME is stoped"

  fi

}

#重启

restart(){

  stop

  start

}



case "$1" in

"start")

start

;;

"stop")

stop

;;

"restart")

restart

;;

"status")

status

;;

*)

usage

;;

esac