Java启动关闭的shell脚本

java 启动脚本

#光标定位到本文件目录下
cd `dirname $0`;
APP_NAME="Java程序包";
pid=$(ps -ef | grep java | grep ${APP_NAME} | awk '{print $2}');
if [ -z "${pid}" ];then
echo "${APP_NAME} IS NOT EXIST START RUNNING";
sleep 3
nohup java -jar -server -Xmx2g -Xms2g -Xmn512m -XX:+HeapDumpOnOutOfMemoryError ./${APP_NAME} >/dev/null 2>&1 &
else
echo "${APP_NAME} IS RUNNING PID =${PID}"
fi

java 停止脚本

#光标定位文件本级目录
cd `dirname $0`;
APP_NAME='';
pid=$(ps -ef | grep java | grep ${APP_NAME} | awk '{print $2}');
if [ -z "${pid}" ];then
echo "${APP_NAME} IS NOT EXITS";
else
echo "${APP_NAME} IS RUNNING PID=${pid}"
sleep 3
kill ${pid}
if [ $? -eq 0 ];then
echo "KILL RUNNING"
fi
fi

清理文件脚本 -type 可以设定文件f 

#当前时间
CUR_TIME=`date + '%Y-%m-%d %H:%M:%S'`;
#清理文件目录
CLEAR_DIR='/tmp/log/*/*/*';

echo "${CUR_TIME} clear file ${CLEAR_DIR}";
find ${CLEAR_DIR} -maxdepth 0 -ctime +90 -type d -print -exec rm -rf {}\;
if [ $? -eq 0 ];
then
echo "CLEAR SUCCESS"
else 
echo "CLEAR FILE"
fi

以下是 JVM 常见十大配置参数:
1.-Xms:初始堆大小。只要启动,就占用的堆大小。
2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。
3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。
当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。
4.XX:NewSize:设置新生代大小的绝对值。
5.-XX:NewRatio:设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总heap的1/4。
6.-XX:MaxPermSize:设置持久代大小。
java.lang.OutOfMemoryError:PermGenspace这个OOM错误需要合理调大PermSize和MaxPermSize大小。
7.-XX:SurvivorRatio:年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。
8.-XX:HeapDumpOnOutOfMemoryError:发生OOM时转储堆到文件,这是一个非常好的诊断方法。
9.-XX:HeapDumpPath:导出堆的转储文件路径。
10.-XX:OnOutOfMemoryError:OOM时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。

发布了16 篇原创文章 · 获赞 4 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章