服务器java启动停止脚本2

#!/bin/bash

RED='\E[1;31m'      # 红
GREEN='\E[1;32m'    # 绿
YELOW='\E[1;33m'    # 黄
BLUE='\E[1;34m'     # 蓝
PINK='\E[1;35m'     # 粉红
RES='\E[0m'         # 清除颜色
#当前线程日志所在位置
logfile=/opt/kafka-consumer/logs/app.log 
#执行需要的jdk环境位置 
JavaPath=/usr/java/jdk/jre/lib/ext/
#执行需要的项目JAR目录 
mylibPath=/opt/kafka-consumer/
#app名称
appName=`ls|grep .jar$`
cd $mylibPath
if [ -z $appName ]
then
    echo "Please check that this script and your jar-package is in the same directory!"
    exit 1
fi

killForceFlag=$2

function start()
{
    count=`ps -ef |grep java|grep $appName|wc -l`
    if [ $count != 0 ];then
        echo -e "${YELOW} Maybe $appName is running, please check it...${RES}"
    else
        echo -e "${GREEN} The $appName is starting...\033[0m"
        nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName &
    fi
}

function stop()
{
    appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    if [ -z $appId ]
    then
        echo -e "${YELOW} Maybe $appName not running, please check it...${RES}"
    else
        echo -e "${GREEN} The $appName is stopping...${RES}"
        if [ "$killForceFlag" == "-f" ]
        then 
            echo "by force"
            kill -9 $appId
        else
            echo
            kill $appId
        fi
    fi
}

function status()
{
    appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    if [ -z $appId ] 
    then
        echo -e "\033[31m Not running \033[0m" 
    else
        echo -e "\033[32m Running [$appId] \033[0m" 
    fi
}

function restart()
{
    stop
    for i in {3..1}
    do
        echo -n "$i "
        sleep 1
    done
    echo 0
    start
}

function usage()
{
    echo "Usage: $0 {start|stop|restart|status|stop -f}"
    echo "Example: $0 start"
    exit 1
}

case $1 in
    start)
    start;;

    stop)
    stop;;
    
    restart)
    restart;;
    
    status)
    status;;
    
    *)
    usage;;
esac

 

posted @ 2021-01-13 19:58  骑着蜗牛看海呀  阅读(237)  评论(0编辑  收藏  举报