1、查询当前应用端口所对应的未释放连接数
2、如果连接数大于阈值 调用 jstack释放
3、休眠5秒
4、继续检测下一应用
cd /usr/local/nacos/bin/logs
currenttime=`date '+%Y年%m月%d日 %H时%M分%S秒'`
#数据库连接池数量
db_num=`netstat -an|grep 3306|wc -l`
echo "数据库端口占用${db_num}"
echo `netstat -an|grep 3306`
#检测端口数量
num=`netstat -an|grep 9001|grep CLOSE_WAIT|wc -l`
echo "API当前端口占用${num}"
if [ ${num} -ge 20 ]; then
pid=`ps -ef |grep -v grep|grep app-service-prod.jar |grep java |awk '{print $2}'`
if [ ! -n "${pid}" ]; then
echo "current pid is null,please start API 接口程序"
else
echo "current pid is ${pid}"
/usr/local/jdk1.8/bin/jstack -F ${pid} > jstack_api.log
fi
else
echo "API 接口程序应用正常"
fi
sleep 5
echo "开始检测8582应用程序"