一个简单的服务保活脚本

290 阅读1分钟

之前在维护 ETCD 集群时,发现ETCD有时会意外崩溃,在定位到具体问题之前,为了保证集群可用,开发了一个简单的服务保活脚本,主要流程是如下:每分钟检查一下服务是否存在,如果服务不存在,则重新启动。

具体脚本如下:

#!/bin/bash

while true
do
	procid=$( ps -ef | grep etcd | grep -v grep | wc -l ) //获取 etcd 服务进程ID

	if [ $procid -eq 0 ] // 如果进程ID不存在,则服务停止,打印必要日志,并重启服务
	then
		time=$(date "+%Y-%m-%d %H:%M:%S")
		echo "restart the etcd begin at ${time}"
		./start.sh > Logs/etcd.logs
	fi
	sleep 60 //存活检查频率。这里是每分钟检查一次
done