def sendQuitPackage(): try: ADDRESS = (hakuCore.config.HOST, hakuCore.config.RECEIVEPORT) msg = 'POST / HTTP/1.0\r\nX-Self-Id: 1009\r\nConnect-Length: 0\r\n\r\n' server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.connect(ADDRESS) server_socket.send(msg.encode('utf-8', errors='ignore')) rpyMsg = server_socket.recv(hakuCore.config.BUF_SIZE) server_socket.close() directPrintLog('Quit package send successfully!') except: server_socket.close() directPrintLog('Quit package send ERROR!')
def judgeServerStatus(): global serverThread if serverThread.isAlive(): return True else: directPrintLog("\nserver.py start FAILED!\n") #重试5次 retry = 0 while retry < 5 and not serverThread.isAlive(): directPrintLog('Try to restart it within 15 seconds. (' + str(retry + 1) + '/5)') time.sleep(15) #time.sleep(5) retry += 1 directPrintLog('Try to restart server.py ...') serverThread = threading.Thread(target=server.main, daemon=True) serverThread.start() time.sleep(2) if serverThread.isAlive(): directPrintLog('Restart successfully!\n') return True else: directPrintLog("server.py restart FAILED!\n") directPrintLog('Give up.') setQuit() directPrintLog('Quit flag setted.') directPrintLog('Waiting for threads...') while timerThread.isAlive() or serverThread.isAlive(): time.sleep(1) return False
else: os.rename('data/groupTime', 'data/groupTime.old') os.mkdir('data/groupTime') else: print('Create groupTime dir.') os.mkdir('data/groupTime') # 检测 data 文件夹 checkDir() # 初始化日志 startLog() # 配置文件检查 directPrintLog("\nCheck for config errors...") # 启动 server directPrintLog('Starting service.') serverThread = threading.Thread(target=server.main, daemon=True) serverThread.start() # 等待初始化完成 time.sleep(1) if judgeServerStatus(): directPrintLog("Successful! Press Ctrl+C to quit.\n") #print(timerThread.isAlive(), serverThread.isAlive()) try: while serverThread.isAlive(): time.sleep(1)