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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章