赞
踩
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
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。