1. 程式人生 > 實用技巧 >python3實現:程序遇Error定時重啟

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)