• tangdingzhi's avatar
    #!/bin/bash · 97c4555d
    tangdingzhi authored
    # 定义变量
    # 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
    JAR_NAME="./dlink-admin-*.jar"
    #java -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/jre/lib:./lib -classpath ."/lib/*.jar" -jar dlink-admin-*.jar
    # 如果需要将FLINK依赖直接加入启动脚本,在SETTING中增加$FLINK_HOME/lib
    SETTING="-Dloader.path=./lib,./plugins -Ddruid.mysql.usePingMethod=false"
    # 如果输入格式不对,给出提示!
    tips() {
    	echo ""
    	echo "WARNING!!!......Tips, please use command: sh auto.sh [start|stop|restart|status].   For example: sh auto.sh start  "
    	echo ""
    	exit 1
    }
    
    # 启动方法
    start() {
            # 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行
    	if [ -z $pid ]; then
            nohup java $SETTING -jar -Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=1024M $JAR_NAME > dlink.log 2>&1 &
            pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
    		echo ""
            echo "Service ${JAR_NAME} is starting!pid=${pid}"
    		echo "........................Start successfully!........................."
    	else
    		echo ""
    		echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto.sh restart."
    		echo ""
    	fi
    }
    
    # 停止方法
    stop() {
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ]; then
    		echo ""
            echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!"
    		echo ""
    	else
    		kill -9 $pid
    		echo ""
    		echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
    		echo ""
    	fi
    }
    
    # 输出运行状态方法
    status() {
            # 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ];then
    		echo ""
            echo "Service ${JAR_NAME} is not running!"
    		echo ""
    	else
    		echo ""
            echo "Service ${JAR_NAME} is running. It's pid=${pid}"
    		echo ""
    	fi
    }
    
    # 重启方法
    restart() {
    	echo ""
    	echo ".............................Restarting.............................."
    	echo "....................................................................."
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ ! -z $pid ]; then
    		kill -9 $pid
    	fi
    	start
    	echo "....................Restart successfully!..........................."
    }
    
    # 根据输入参数执行对应方法,不输入则执行tips提示方法
    case "$1" in
       "start")
         start
         ;;
       "stop")
         stop
         ;;
       "status")
         status
         ;;
       "restart")
         restart
         ;;
       *)
         tips
         ;;
    esac
    97c4555d
Name
Last commit
Last update
dlink-admin Loading commit data...
dlink-app Loading commit data...
dlink-assembly Loading commit data...
dlink-client Loading commit data...
dlink-common Loading commit data...
dlink-connectors Loading commit data...
dlink-core Loading commit data...
dlink-doc Loading commit data...
dlink-executor Loading commit data...
dlink-extends Loading commit data...
dlink-function Loading commit data...
dlink-gateway Loading commit data...
dlink-metadata Loading commit data...
dlink-web Loading commit data...
docs Loading commit data...
.gitignore Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
build.cmd Loading commit data...
build.sh Loading commit data...
pom.xml Loading commit data...