• 快速启动jar包脚本【Linux】


    快速启动jar包脚本【Linux】

    备注:从Windows拷贝到Linux会出现编译器错误

    参考作者这篇博客:https://www.cnblogs.com/zhanqing/p/15305362.html

    #!/bin/bash
    version="1.0.1";
    
    appName=$2
    if [ -z $appName ];then
        appName=`ls -t |grep .jar$ |head -n1`
    fi
    
    function start()
    {
            count=`ps -ef |grep java|grep $appName|wc -l`
            if [ $count != 0 ];then
                    echo "Maybe $appName is running, please check it..."
            else
                    echo "The $appName is starting..."
                    nohup java -Xms512m -Xmx512m -Xmn256m -Xloggc:./gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -jar ./$appName > ./app-log.out 2>&1 &
            fi
    }
    
    function stop()
    {
            appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
            if [ -z $appId ];then
                echo "Maybe $appName not running, please check it..."
            else
            echo "The $appName is stopping..."
            kill -9 $appId
            fi
    }
    
    function restart()
    {
        # get release version
        releaseApp=`ls -t |grep .jar$ |head -n1`
    
        # get last version
        lastVersionApp=`ls -t |grep .jar$ |head -n2 |tail -n1`
    
        appName=$lastVersionApp
        stop
        for i in {5..1}
        do
            echo -n "$i "
            sleep 1
        done
        echo 0
    
        backup
    
        appName=$releaseApp
        start
    }
    
    function backup()
    {
        # get backup version
        backupApp=`ls |grep -wv $releaseApp$ |grep .jar$`
    
        # create backup dir
        if [ ! -d "backup" ];then
            mkdir backup
        fi
    
        # backup
        for i in ${backupApp[@]}
        do
            echo "backup" $i
            mv $i backup
        done
    }
    function status()
    {
        appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
            if [ -z $appId ]
            then
                echo -e "33[31m Not running 33[0m"
            else
                echo -e "33[32m Running [$appId] 33[0m"
            fi
    }
    
    
    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
  • 相关阅读:
    gevent实现基于epoll和协程的服务器
    用greenlet实现协程消费者生产者
    More is better(MST)(求无向图中最大集合元素个数)
    小希的迷宫(MST单棵树判断法则)
    畅通工程再续(MST)
    畅通工程再续
    畅通工程
    还是畅通工程(MST)
    Minimum Inversion Number
    Who Gets the Most Candies?(线段树 + 反素数 )
  • 原文地址:https://www.cnblogs.com/zhanqing/p/15306867.html
Copyright © 2020-2023  润新知