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
原文地址:https://www.cnblogs.com/passedbylove/p/12939424.html