#/bin/bash
#zabbix键值传过来的第一个参数,jar包名
PACKAGE_NAME=你的jar包名称
PACKAGE_DIR=你的jar包路径
#第二个参数,端口号
PORT=你jar包服务的端口
#统计这个jar包进程的数量
JARTSTATUS=`ps -ef |grep -v grep | grep "$PACKAGE_NAME" | grep java |wc -l`
#统计这个jar包监听端口的数量
PORTSTATUS=`netstat -antlp |grep LISTEN | grep -w "$PORT" |grep -v grep |grep java | wc -l`
#如果jar包数量和监听端口数量都是1,则返回1,不然返回0
if [[ "$JARTSTATUS" -eq "0" && "$PORTSTATUS" -eq "0" ]];
then
echo "不正常"
sh $PACKAGE_DIR/$PACKAGE_NAME/bin/launsh.sh start
else
echo "正常"
fi
注释:逻辑很简单,就是判断端口在不在,不在的话就重启,服务在就不做任何操作,可以搭配定时任务做到每隔多长时间去检查服务
05-09