美文网首页
shell java项目 自动启动脚本命令 可自由传参

shell java项目 自动启动脚本命令 可自由传参

作者: yichen_china | 来源:发表于2022-03-04 10:04 被阅读0次
    #!/bin/bash
    #执行方法 start|stop
    
    mulu=$(dirname $(readlink -f $0))
    # 执行方法:-a start|stop
    a='start'
    # 执的版本号, 例如:-v 2.2.0
    v=3.2
    n=
    d='prod'
    #执行名字例如:-n ruoyi-gateway
    # 'ruoyi-modules-job' 'ruoyi-visual-monitor'
    # arr=('ruoyi-gateway' 'ruoyi-auth' 'ruoyi-modules-system' 'ruoyi-modules-job' 'ruoyi-modules-gen' 'ruoyi-visual-monitor' 'ruoyi-modules-file' 'beiyao-zt-erp')
    arr=('yshop-app' 'yshop-admin' 'yshop-chat')
    while getopts ":v:n:a:d:" opt
    do
        case $opt in
            n)
            n=$OPTARG
            arr=($OPTARG)
            echo "当前操作应用:$OPTARG"
            ;;
            v)
            v=$OPTARG
            echo "版本号:$OPTARG"
            ;;
            a)
            a=$OPTARG
            echo "操作方法:$OPTARG"
            ;;
            d)
            d=$OPTARG
            echo "启动环境:$OPTARG"
            ;;
            ?)
            echo "未知参数,-v 2.0.0 -n nginx -i start|stop -d prod"
            exit 1;;
        esac
    done
    
    if [ ! -n "$v" ]; then
     echo "IS NULL"
    else
        for ((i=0; i<${#arr[@]};i++))
        do
        arr[$i]=${arr[i]}-$v;
        echo ${arr[i]};
        done
    #  echo "NOT NULL"
    fi
    
    
    function stopjar(){
        PID=$(ps -ef | grep $1.jar | grep -v grep | awk '{ print $2 }')
        if [ -z "$PID" ]
        then
        echo $1 is already stopped
        else
        echo "stop $1.jar kill -9 $PID"
        kill -9 $PID
        fi
    }
    function startjar(){
        stopjar $1
        echo "start nohup java -Dfile.encoding=utf-8 -Duser.timezone=GMT+8  -Dspring.profiles.active=$d  -jar -Xmx512M  $mulu/$1.jar  >$mulu/logs/$1.out 2>&1 &"
        nohup java -Dfile.encoding=utf-8 -Duser.timezone=GMT+8   -Dspring.profiles.active=$d -jar -Xmx512M $mulu/$1.jar >$mulu/logs/$1.out 2>&1 &
    
    }
    function stop(){
            length=${#arr}
        # for 遍历
        for item in ${arr[*]}
        do
         echo "stop" $item
         stopjar $item
        done
    }
    
    function start(){
        length=${#arr}
        echo "开始服务:$length"
        # for 遍历
        for item in ${arr[*]}
        do
    
         startjar $item
        done
    }
    echo "$a $d"
    $a
    

    相关文章

      网友评论

          本文标题:shell java项目 自动启动脚本命令 可自由传参

          本文链接:https://www.haomeiwen.com/subject/npiprrtx.html