From 4b4e5f3f7ea1e59f70d53fd11efe1ecb366cd3f8 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 19 四月 2019 17:16:00 +0800
Subject: [PATCH] 6457 【后端】【2.0】缥缈仙域开发单(宝藏流程调整)

---
 Tool/RemoteTool/RemoteServer/webapp.py |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/Tool/RemoteTool/RemoteServer/webapp.py b/Tool/RemoteTool/RemoteServer/webapp.py
index 89117a6..8bd4e1e 100644
--- a/Tool/RemoteTool/RemoteServer/webapp.py
+++ b/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"):

--
Gitblit v1.8.0