Skip to content

Commit 87238c9

Browse files
committed
vjdump在单个命令失败后不退出中断过程 #77
1 parent 2fc4e18 commit 87238c9

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

vjdump/vjdump.sh

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,12 @@ START()
3939
fi
4040

4141
# 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
42+
if [ -z "$JAVA_HOME" ] ; then
43+
JAVA_HOME=`readlink -f \`which java 2>/dev/null\` 2>/dev/null | \
44+
sed 's/\jre\/bin\/java//' | sed 's/\/bin\/java//'`
5345
fi
54-
if [ -z ${JAVA_HOME} ]; then
46+
47+
if [ ! -f "$JAVA_HOME/bin/jstack" ] ; then
5548
echo -e "\033[31m\$JAVA_HOME not found. please export JAVA_HOME manually.\033[0m"
5649
exit -1
5750
fi
@@ -70,8 +63,7 @@ START()
7063
JSTACK_LOG=${LOGDIR}/jstack-${PID}-${DATE}.log
7164
${JAVA_HOME}/bin/jstack -l $PID > ${JSTACK_LOG}
7265
if [[ $? != 0 ]]; then
73-
echo -e "\033[31mprocess jstack error, now exit.\033[0m"
74-
exit -1
66+
echo -e "\033[31mprocess jstack error.\033[0m"
7567
fi
7668
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jstack."
7769
sleep ${SLEEP_TIME}
@@ -86,8 +78,7 @@ START()
8678
VJTOP_LOG=${LOGDIR}/vjtop-${PID}-${DATE}.log
8779
$VJTOP_SCRIPT -n 1 -d $VJTOP_DURATION $PID > ${VJTOP_LOG}
8880
if [[ $? != 0 ]]; then
89-
echo -e "\033[31mprocess vjtop error, now exit.\033[0m"
90-
exit -1
81+
echo -e "\033[31mprocess vjtop error.\033[0m"
9182
fi
9283
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process vjtop."
9384
else
@@ -97,8 +88,7 @@ START()
9788
JINFO_FLAGS_LOG=${LOGDIR}/jinfo-flags-${PID}-${DATE}.log
9889
${JAVA_HOME}/bin/jinfo -flags $PID 1>${JINFO_FLAGS_LOG} 2>&1
9990
if [[ $? != 0 ]]; then
100-
echo -e "\033[31mprocess jinfo -flags error, now exit.\033[0m"
101-
exit -1
91+
echo -e "\033[31mprocess jinfo -flags error.\033[0m"
10292
fi
10393
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jinfo -flags."
10494

@@ -107,8 +97,7 @@ START()
10797
JMAP_HEAP_LOG=${LOGDIR}/jmap_heap-${PID}-${DATE}.log
10898
${JAVA_HOME}/bin/jmap -heap $PID > ${JMAP_HEAP_LOG}
10999
if [[ $? != 0 ]]; then
110-
echo -e "\033[31mprocess jmap -heap error, now exit.\033[0m"
111-
exit -1
100+
echo -e "\033[31mprocess jmap -heap error.\033[0m"
112101
fi
113102
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jmap -heap."
114103
fi
@@ -118,8 +107,7 @@ START()
118107
JMAP_HISTO_LOG=${LOGDIR}/jmap_histo-${PID}-${DATE}.log
119108
${JAVA_HOME}/bin/jmap -histo $PID > ${JMAP_HISTO_LOG}
120109
if [[ $? != 0 ]]; then
121-
echo -e "\033[31mprocess jmap -histo error, now exit.\033[0m"
122-
exit -1
110+
echo -e "\033[31mprocess jmap -histo error.\033[0m"
123111
fi
124112
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jmap -histo."
125113
sleep ${SLEEP_TIME}
@@ -129,8 +117,7 @@ START()
129117
JMAP_HISTO_LIVE_LOG=${LOGDIR}/jmap_histo_live-${PID}-${DATE}.log
130118
${JAVA_HOME}/bin/jmap -histo:live $PID > ${JMAP_HISTO_LIVE_LOG}
131119
if [[ $? != 0 ]]; then
132-
echo -e "\033[31mprocess jmap -histo:live error, now exit.\033[0m"
133-
exit -1
120+
echo -e "\033[31mprocess jmap -histo:live error.\033[0m"
134121
fi
135122
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jmap -histo:live."
136123
sleep ${SLEEP_TIME}
@@ -141,8 +128,7 @@ START()
141128
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Begin to process jmap -dump:live."
142129
${JAVA_HOME}/bin/jmap -dump:live,format=b,file=${JMAP_DUMP_FILE} $PID
143130
if [[ $? != 0 ]]; then
144-
echo -e "\033[31mprocess jmap -dump:live error, now exit.\033[0m"
145-
exit -1
131+
echo -e "\033[31mprocess jmap -dump:live error.\033[0m"
146132
fi
147133
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process jmap -dump:live."
148134

@@ -159,8 +145,7 @@ START()
159145
# "\cp" means unalias cp, it can cover files without prompting
160146
\cp -rf $GCLOG ${LOGDIR}/
161147
if [[ $? != 0 ]]; then
162-
echo -e "copy gc log error, now exit."
163-
exit -1
148+
echo -e "copy gc log error."
164149
fi
165150
fi
166151
echo -e "$(date '+%Y-%m-%d %H:%M:%S') Finish to process gc log."
@@ -174,8 +159,7 @@ START()
174159
ZIP_FILE=${BASEDIR}/vjdump-${PID}-${DATE}.zip
175160
zip -j ${ZIP_FILE} ${LOGDIR}/*.log
176161
if [[ $? != 0 ]]; then
177-
echo -e "\033[31mzip files error, exit.\033[0m"
178-
exit -1
162+
echo -e "\033[31mzip files error.\033[0m"
179163
else
180164
echo -e "zip files success, the zip file is \033[34m${ZIP_FILE}\033[0m"
181165
fi
@@ -187,8 +171,7 @@ START()
187171
ZIP_FILE_WITH_HEAP_DUMP=${BASEDIR}/vjdump-with-heap-${PID}-${DATE}.zip
188172
zip -j ${ZIP_FILE_WITH_HEAP_DUMP} ${LOGDIR}/*.log ${JMAP_DUMP_FILE}
189173
if [[ $? != 0 ]]; then
190-
echo -e "\033[31mzip files which include dump file error, exit.\033[0m"
191-
exit -1
174+
echo -e "\033[31mzip files which include dump file error.\033[0m"
192175
else
193176
echo -e "zip files which include dump file success, the zip path is \033[34m${ZIP_FILE_WITH_HEAP_DUMP}\033[0m"
194177
fi

0 commit comments

Comments
 (0)