python3实现:进程遇Error定时重启

import os
import time


# 停止HFish
def stopHFish():
	# while True:
	try:
		# 找到HFish进程号
		HFish_id = int(os.popen("pgrep HFish").read().strip())
		# 沙了
		os.popen('kill -9 '+ str(HFish_id))
		print("HFish已关闭")

	except:
		print("进程不存在")
# 启动HFish
def startHFish():
	HFish_st_re = os.system('nohup ./HFish run > out.log 2>&1 &')
	time.sleep(5)

# 重启HFish
def restartHFish():
	stopHFish()
	print('%s HFish停止成功!' % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
	startHFish()
	print('%s HFish重启成功!' % time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

# 查询日志文件中是否有error关键字
def finderror():
	reached = False
	log_str = open('/opt/hfish/out.log', 'r').read()
	if 'runtime error' in log_str:
		reached = True
	else:
		reached = False
	return reached

if __name__ == '__main__':
	while True:
		restartHFish()
		# 定时查看日志中是否存在error
		while finderror() == False:
			time.sleep(5)
posted @ 2020-12-28 13:41  带着泥土  阅读(237)  评论(0)    收藏  举报