以下脚本将启动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 "\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
标签:java,自定义,程序运行,appName,jar,stop,echo,start,ubuntu
来源: https://www.cnblogs.com/passedbylove/p/12939424.html