잉여개발기 5 miesięcy temu
rodzic
commit
d41bfa66ac
4 zmienionych plików z 38 dodań i 1 usunięć
  1. 35 0
      app.py
  2. 1 0
      requirements.txt
  3. 1 0
      route/tool/func.py
  4. 1 1
      version.json

+ 35 - 0
app.py

@@ -262,9 +262,44 @@ async def golang_process_check():
             print('Wait golang...')
             time.sleep(1)
 
+def kill_port(port, timeout = 1.5, force = True):
+    pids = {
+        c.pid for c in psutil.net_connections(kind = "inet")
+        if c.pid and c.laddr and c.laddr.port == port and c.status == psutil.CONN_LISTEN
+    }
+    procs = []
+    for pid in pids:
+        try:
+            p = psutil.Process(pid)
+            p.terminate()
+            procs.append(p)
+        except psutil.NoSuchProcess:
+            pass
+        except psutil.AccessDenied:
+            print("Golang PID is not dying, please shut down manually by sudo.")
+            raise
+
+    _, alive = psutil.wait_procs(procs, timeout = timeout)
+    if force:
+        for p in alive:
+            try:
+                p.kill()
+            except psutil.NoSuchProcess:
+                pass
+            except psutil.AccessDenied:
+                print("Golang PID is not dying, please shut down manually by sudo.")
+                raise
+
+        psutil.wait_procs(alive, timeout = timeout)
+
+    return sorted(pids)
+
 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
 BIN_DIR = os.path.join(BASE_DIR, "bin")
 
+port_kill = kill_port(server_set["golang_port"])
+print("Golang port killed : " + str(port_kill))
+
 exe_name = linux_exe_chmod()
 exe_path = os.path.join(BIN_DIR, exe_name)
 

+ 1 - 0
requirements.txt

@@ -10,6 +10,7 @@ asyncio
 nest-asyncio
 requests
 
+psutil
 diff-match-patch
 
 pillow

+ 1 - 0
route/tool/func.py

@@ -86,6 +86,7 @@ import nest_asyncio
 import aiohttp
 
 import requests
+import psutil
 from PIL import Image
 
 try:

+ 1 - 1
version.json

@@ -1,5 +1,5 @@
 {
-    "r_ver" : "v3.6.0-Beta-v40",
+    "r_ver" : "v3.6.0-Beta-v41",
     "c_ver" : "20250514",
     "s_ver" : "20240426",
     "bin_link" : "https://github.com/openNAMU/GopenNAMU/releases/download/v2025-12-07-Beta-v7/"