@@ -38,6 +38,25 @@ START()
3838 echo -e " The pid is ${PID} "
3939 fi
4040
41+ # try to find $JAVA_HOME if not set
42+ if [[ -z ${JAVA_HOME} || ! -d ${JAVA_HOME} ]]; then
43+ JAVA_HOME_CANDIDATES=$( ps aux \
44+ | grep java \
45+ | awk ' {print $11}' \
46+ | sed -n ' s/\/bin\/java$//p' )
47+ for JAVA_HOME_TEMP in ${JAVA_HOME_CANDIDATES[@]} ; do
48+ if [ -f ${JAVA_HOME_TEMP} /lib/tools.jar ]; then
49+ JAVA_HOME=${JAVA_HOME_TEMP}
50+ break
51+ fi
52+ done
53+ fi
54+ if [ -z ${JAVA_HOME} ]; then
55+ echo -e " \033[31m\$ JAVA_HOME not found. please export JAVA_HOME manually.\033[0m"
56+ exit -1
57+ fi
58+
59+
4160 # clean all history logs
4261 rm -rf ${LOGDIR} /* .log ${LOGDIR} /* jmap_dump_live-* .bin
4362 mkdir -p ${LOGDIR}
@@ -49,7 +68,7 @@ START()
4968 # jstack
5069 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jstack."
5170 JSTACK_LOG=${LOGDIR} /jstack-${PID} -${DATE} .log
52- jstack -l $PID > ${JSTACK_LOG}
71+ ${JAVA_HOME} /bin/ jstack -l $PID > ${JSTACK_LOG}
5372 if [[ $? != 0 ]]; then
5473 echo -e " \033[31mprocess jstack error, now exit.\033[0m"
5574 exit -1
@@ -76,7 +95,7 @@ START()
7695 # jinfo -flags $PID
7796 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jinfo -flags."
7897 JINFO_FLAGS_LOG=${LOGDIR} /jinfo-flags-${PID} -${DATE} .log
79- jinfo -flags $PID 1> ${JINFO_FLAGS_LOG} 2>&1
98+ ${JAVA_HOME} /bin/ jinfo -flags $PID 1> ${JINFO_FLAGS_LOG} 2>&1
8099 if [[ $? != 0 ]]; then
81100 echo -e " \033[31mprocess jinfo -flags error, now exit.\033[0m"
82101 exit -1
@@ -86,7 +105,7 @@ START()
86105 # jmap -heap
87106 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jmap -heap."
88107 JMAP_HEAP_LOG=${LOGDIR} /jmap_heap-${PID} -${DATE} .log
89- jmap -heap $PID > ${JMAP_HEAP_LOG}
108+ ${JAVA_HOME} /bin/ jmap -heap $PID > ${JMAP_HEAP_LOG}
90109 if [[ $? != 0 ]]; then
91110 echo -e " \033[31mprocess jmap -heap error, now exit.\033[0m"
92111 exit -1
@@ -97,7 +116,7 @@ START()
97116 # jmap -histo
98117 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jmap -histo."
99118 JMAP_HISTO_LOG=${LOGDIR} /jmap_histo-${PID} -${DATE} .log
100- jmap -histo $PID > ${JMAP_HISTO_LOG}
119+ ${JAVA_HOME} /bin/ jmap -histo $PID > ${JMAP_HISTO_LOG}
101120 if [[ $? != 0 ]]; then
102121 echo -e " \033[31mprocess jmap -histo error, now exit.\033[0m"
103122 exit -1
@@ -108,7 +127,7 @@ START()
108127 # jmap -histo:live
109128 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jmap -histo:live."
110129 JMAP_HISTO_LIVE_LOG=${LOGDIR} /jmap_histo_live-${PID} -${DATE} .log
111- jmap -histo:live $PID > ${JMAP_HISTO_LIVE_LOG}
130+ ${JAVA_HOME} /bin/ jmap -histo:live $PID > ${JMAP_HISTO_LIVE_LOG}
112131 if [[ $? != 0 ]]; then
113132 echo -e " \033[31mprocess jmap -histo:live error, now exit.\033[0m"
114133 exit -1
@@ -120,7 +139,7 @@ START()
120139 if [[ $NEED_HEAP_DUMP == 1 ]]; then
121140 JMAP_DUMP_FILE=${LOGDIR} /jmap_dump_live-${PID} -${DATE} .bin
122141 echo -e " $( date ' +%Y-%m-%d %H:%M:%S' ) Begin to process jmap -dump:live."
123- jmap -dump:live,format=b,file=${JMAP_DUMP_FILE} $PID
142+ ${JAVA_HOME} /bin/ jmap -dump:live,format=b,file=${JMAP_DUMP_FILE} $PID
124143 if [[ $? != 0 ]]; then
125144 echo -e " \033[31mprocess jmap -dump:live error, now exit.\033[0m"
126145 exit -1
0 commit comments