#! /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