while : # loop
do
# 先获取java 的 pid
javaPid=$(ps -ef | grep "java" | grep -v grep | awk '{print $2}')
if read -n 1 -p "1. jmap -histo:live
2. jmap -dump:format=b,file=dumpFileName
3. jstack [pid]
请选择需要执行的命令:[1/2/3]"
then
case $REPLY in
1) #1
echo -e "\n 开始执行命令:jmap -histo[:live] \n"
echo -e "java的进程ID为"$javaPid
jmap -histo:live $javaPid
echo -e "\n 执行结束 \n"
break;;
2) #2
echo -e "\n 开始执行命令 jmap -dump:format=b,file=dumpFileName\n"
jmap -dump:format=b,file=jmapDumpFile $javaPid
echo "执行结束"
break;;
3) #3
echo -e "\n 3开始执行jstack [pid]\n"
jstack $javaPid
echo -e "执行结束"
break;;
*) #input error repeat
echo -e "\n input parameter error !! \n"
continue
esac
else #timeover
break
fi
done
jmap -histo ,jmap dumpfile, jstack
最新推荐文章于 2023-09-02 22:16:19 发布