linux 监控端口 崩溃重启

shell脚本后台运行,每分钟循环一次,监听端口是否被占用,没占用代表程序崩溃,于是重启程序

#!/bin/bash

#日志文件
INF0_LOG_FILE="./info.log"
ERR_LOG_FILE="./err.log"
#监听时间间隔
SLEEP_TIME="60s"
time=$(date "+%Y-%m-%d %H:%M:%S")



# 监听端口
# $1端口  $2重启命令
function monitorPort() {
  #查询端口占用
  lsof -i:$1
  # $? -ne 0 不存在 $? -eq 0存在
  if [ $? -ne 0 ]
  then
    echo 端口 $1 没启动 >> $INF0_LOG_FILE
    echo $time 端口 $1 没启动 >> $ERR_LOG_FILE

    echo 端口 $1 准备启动 >> $INF0_LOG_FILE
    eval $2

    sleep 5
    time=$(date "+%Y-%m-%d %H:%M:%S")
    lsof -i:$1
    if [ $? -ne 0 ]
    then
      echo 端口 $1 启动成功 >> $INF0_LOG_FILE
      echo $time 端口 $1 启动成功 >> $ERR_LOG_FILEs
    else
      echo 端口 $1 启动失败 >> $INF0_LOG_FILE
      echo $time 端口 $1 启动失败  * >> $ERR_LOG_FILE
    fi

  else
    echo 端口 $1 正常  >> $INF0_LOG_FILE
  fi
}



#脚本开始**********************************************************
#-e增加转义功能 \n
echo -e "\n\n"$(date "+%Y-%m-%d %H:%M:%S") "脚本启动   *********************\n\n" >> $INF0_LOG_FILE

while true
do
  time=$(date "+%Y-%m-%d %H:%M:%S")
  echo -e "\n"$time " -----------------------------------------" >> $INF0_LOG_FILE


  monitorPort 8084 "nohup java -jar /usr/local/springboot/youxi/springboot-0.0.1-SNAPSHOT.jar  --spring.profiles.active=prod   --server.port=8084  >/dev/null 2>&1 &"
  monitorPort 8085 "nohup java -jar /usr/local/springboot/youxi/springboot-0.0.1-SNAPSHOT.jar  --spring.profiles.active=prod   --server.port=8085  >/dev/null 2>&1 &"



	sleep $SLEEP_TIME
done


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值