hxp
2019-10-21 78a2ce57d2d546ebade26a801b33c5cb0d8a408c
Tool/RemoteTool/RemoteServer/webapp.py
@@ -21,6 +21,8 @@
from email.mime.text import MIMEText
from email.header import Header
import datetime
import subprocess
import urllib
# get: request.query.username request.GET.get('username','')
# post: request.forms.get('username')  request.POST.get('username')
#===============================================================================
@@ -62,7 +64,11 @@
        pResult = pResult.read()
        if "PID" in pResult or "pid" in pResult:
            return " =======服务器已经开启,请再次确认服务器情况, EventServer.exe运行中"
        os.system(r"call D:\ProjectServer\LaunchServerManager\正常开服.bat")
        #os.system(r"call D:\ProjectServer\LaunchServerManager\正常开服.bat")
        # system call会导致子进程占用父进程的文件描述符导致端口无法释放, 影响重启使用
        # 如果需要保持子进程持续长期运行的应该调用 subprocess.Popen(cmd, close_fds=True)
        cmd = r"D:\ProjectServer\LaunchServerManager\正常开服.bat"
        subprocess.Popen(cmd, close_fds=True)
        return "open success"
    elif result == "close":
        # 记得关服后或者重启机器需自动启动服务器控制台
@@ -106,6 +112,13 @@
                                                       dataDict.get("userDBName", 0))
            SendEmail(ServerInfo)
            return  
        elif stateType == "GameWarning":
            # 游戏通用警告邮件使用
            ServerInfo = "游戏警报:服务器组:%s, dbname:%s, 警告信息:%s"%(
                                                       dataDict.get("groupID", 0),
                                                       dataDict.get("userDBName", 0),
                                                       urllib.unquote_plus(dataDict.get("MsgInfo", 0)))
            SendEmail(ServerInfo)
        elif stateType == "QueryMapOK":
            if g_AllMapCnt == 0:
                if not os.path.exists(".\MapCount.txt"):
@@ -117,6 +130,11 @@
            return "服务器开启完毕,地图数:%s"%g_AllMapCnt
    except Exception, e:
        print e
        ServerInfo = "控制台报错,服务器异常!  %s"%e
        try:
            SendEmail(ServerInfo)
        except:
            print "无法发送邮件"
# 邮件汇报
def SendEmail(ServerInfo):