#! /bin/bash
function checktcpcode() {
listen_num=$(ss -lnpt|grep "$1"|wc -l) #$1获取参数中的检查端口
# echo $listen_num
if [ $listen_num -eq 0 ];then # 如果不存在监听则返回0 否则返回1
return 0
fi
return 1
}
function check(){
while true
do
checktcpcode xxx
if [[ $? -eq 0 ]];then # 如果返回值是0,则重启
echo "restart xxx"
docker restart xxx
fi
sleep 1m
done
}
check
后台执行
nohup ./check_status.sh > check_status.log &
注
如果是http服务,尽量选择http 检查,有时tcp在监听,但是http已不提供服务