服务器上部署了一个没有运维接入健康检查的服务,如何通过自己书写的脚本进行监控该服务是否正在运行,并在服务崩溃后重启呢?
check_reboot.py
import subprocess
import os
import datetime
# 这里grep后接指定服务大概的名字
res = subprocess.Popen("ps aux|grep predict",stdout=subprocess.PIPE,shell=True)
python_process =res.stdout.readlines()
counts=len(python_process)
if counts <1:
# 重新启动指定服务
os.system("/usr/bin/python3 /home/api/predict_flask_api.py")
再在定时任务crontab中指定该脚本10分钟或者5分钟执行一次,这样服务崩溃最多10分钟就会被监测到并重启
*/10 * * * * nohup /usr/bin/python3 /home/api/check_reboot.py