zoukankan      html  css  js  c++  java
  • Linux自定义java程序运行脚本的命令

    以下脚本将启动mes-lastest.jar,并且:

    1、开启远程调试支持,端口8899,

    2、开启GC日志记录功能

    3、程序发送OOM是Dump内存

    用法如下:

    Usage: ./run.sh {start|stop|restart|status|stop -f}
    Example: ./run.sh start

    示例:

    ubuntu@ubuntu:~$ ^C
    ubuntu@ubuntu:~$ vim run.sh
    ubuntu@ubuntu:~$ ./run.sh start
    Maybe mes-lastest.jar is running, please check it...
    ubuntu@ubuntu:~$ ./run.sh stop
    The mes-lastest.jar is stopping...
    ubuntu@ubuntu:~$ ./run.sh start
    The mes-lastest.jar is starting...
    ubuntu@ubuntu:~$
    #!/bin/bash
    
    appName=`ls|grep mes-lastest.jar$`
    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 "Maybe $appName is running, please check it..."
        else
            echo "The $appName is starting..."
            nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8899 -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/ubuntu -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/home/ubuntu/gc.log -Xms512M -Xmx1024G -Dserver.port=8080 -jar $appName > /dev/null 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 -n "The $appName is stopping..."
            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 "33[31m Not running 33[0m" 
        else
            echo -e "33[32m Running [$appId] 33[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
  • 相关阅读:
    AAC-LC 是什么格式?和 AAC 有什么区别?
    AAC_LC用LATM封装header信息解析 Audio Specific Config格式分析
    AAC的AudioSpecificConfig细节
    AAC帧格式及编码介绍
    AAC 格式分析
    AAC头部格式,RTP打包格式
    RTP 打包H264与AAC
    程序员除了会CRUD之外,还应该知道什么叫CQRS!
    Neo4j数据库学习一:安装和数据类型常用命令简介
    【Neo4j查询优化系列】如何快速统计节点的关系数
  • 原文地址:https://www.cnblogs.com/passedbylove/p/12939424.html
Copyright © 2011-2022 走看看