#!/bin/bash
#服务启动监听的端口,需要用户根据部署情况修改
PORT=8099
#服务启动脚本及参数,需要用户根据实际情况修改
SCRIPT="start.sh"
PID=`netstat -anp |grep ":$PORT" |grep LISTEN |awk '{print $7}' |awk -F/ '{print $1}'`
#SERVICE_PATH=`pwdx $PID |awk -F' ' '{print $2}'`
SERVICE_PATH=/mnt/aiobs/ibas/bin
while( true )
do
PID=`netstat -anp |grep ":$PORT" |grep LISTEN |awk '{print $7}' |awk -F/ '{print $1}'`
if [ -z "$PID" ]
then
echo $(date) : process has been restart >> $SERVICE_PATH/restart.log
cd $SERVICE_PATH
bash $SCRIPT
sleep 120
fi
sleep 10
done
解释:
这是一个Bash脚本,用于监控一个服务是否在运行。如果服务没有运行,它会尝试重新启动该服务。
脚本的主要步骤如下:
设置服务监听的端口和启动脚本。
使用netstat命令检查指定端口是否正在被监听。
如果端口没有被监听(即PID为空),则记录重启信息,并尝试启动服务。
每10秒检查一次,如果服务停止,则等待120秒后再次尝试启动。
启动脚本命令
nohup sh 脚本名称.sh &