以下脚本将启动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
本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。