java假死,但是进程还在,可以通过判断一段时间内日志文件是否有变化,来判断java是否假死
shell脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/bin/bash # #通过比较五分钟前后,日志文件md5值是否相同,来判断日志文件是否有变化,从而判断java是否假死 #请根据实际情况,修改环境变量,项目路径 #加入计划任务执行 # function RestartJava()
{ export JAVA_HOME= /opt/apps/jdk1 .6.0_41
export PATH=$PATH: /opt/apps/jdk1 .6.0_41 /bin
export CLASSPATH=.:$JAVA_HOME /lib/tools .jar:$JAVA_HOME /lib/dt .jar:$JAVA_HOME /jre/lib/rt .jar
JavaPath= "/opt/apps/apache-tomcat-6.0.37"
JavaId=$( ps -ef| grep java | grep $JavaPath | grep - v "grep" | awk '{print $2}' )
kill -9 $JavaId
cd $JavaPath /bin && /bin/bash startup.sh
} #while [ 1 ] #do First=`md5sum /opt/shell/nohup .out | awk '{print $1}' `
sleep 300
Second=`md5sum /opt/shell/nohup .out | awk '{print $1}' `
if [[ $First == $Second ]]
then echo "start restart java" > /dec/null 2>&1
RestartJava
fi #done |
本文转自 穿越防火墙 51CTO博客,原文链接:http://blog.51cto.com/sjitwant/1734238