Selaa lähdekoodia

코드 수정

잉여개발기 1 vuosi sitten
vanhempi
sitoutus
7fa82840f1
6 muutettua tiedostoa jossa 27 lisäystä ja 25 poistoa
  1. 1 1
      app.py
  2. 1 1
      lang/en-US.json
  3. 2 1
      lang/ko-KR.json
  4. 18 18
      route/main_sys_restart.py
  5. 5 3
      route/main_sys_update.py
  6. 0 1
      route/tool/func.py

+ 1 - 1
app.py

@@ -972,4 +972,4 @@ if __name__ == "__main__":
     config = Config()
     config.bind = [server_set['host'] + ":" + server_set['port']]
 
-    asyncio.run(serve(app, config))
+    asyncio.run(serve(app, config))

+ 1 - 1
lang/en-US.json

@@ -61,7 +61,7 @@
     "move_bottom_text" : "Move textarea bottom notice",
     "delete_bottom_text" : "Delete textarea bottom notice",
     "revert_bottom_text" : "Revert textarea bottom notice",
-
+    "warning_restart" : "Restarting... Press Refresh (F5)",
 
     "_comment_": "Common",
     "data": "Data",

+ 2 - 1
lang/ko-KR.json

@@ -708,5 +708,6 @@
     "edit_only_bottom_text" : "편집 전용 하단 문구",
     "move_bottom_text" : "이동 하단 문구",
     "delete_bottom_text" : "삭제 하단 문구",
-    "revert_bottom_text" : "되돌리기 하단 문구"
+    "revert_bottom_text" : "되돌리기 하단 문구",
+    "warning_restart" : "재시작 중... 새로고침(F5)를 눌러주세요"
 }

+ 18 - 18
route/main_sys_restart.py

@@ -1,29 +1,29 @@
 from .tool.func import *
 
-async def main_sys_restart_do():
+def main_sys_restart_do():
     print('Restart')
 
+    time.sleep(3)
+
     python_ver = ''
     python_ver = str(sys.version_info.major) + '.' + str(sys.version_info.minor)
 
-    run_list = [sys.executable, 'python' + python_ver, 'python3', 'python', 'py -' + python_ver]
-    for exe_name in run_list:
-        try:
-            os.execl(exe_name, sys.executable, *sys.argv)
-        except:
-            pass
-
-        try:
-            os.execl(exe_name, '"' + sys.executable + '"', *sys.argv)
-        except:
-            pass
+    run_list = [
+        sys.executable,
+        'python' + python_ver,
+        'python3',
+        'python',
+        'py -' + python_ver
+    ]
 
+    for exe_name in run_list:
         try:
-            os.execl(exe_name, os.path.abspath(__file__), *sys.argv)
+            subprocess.Popen([exe_name] + sys.argv)
+            break
         except:
-            pass
-    else:
-        return 0
+            continue
+    
+    os._exit(0)
 
 async def main_sys_restart(golang_process):
     with get_db_connect() as conn:
@@ -40,8 +40,8 @@ async def main_sys_restart(golang_process):
                 except subprocess.TimeoutExpired:
                     golang_process.kill()
 
-            if await main_sys_restart_do() == 0:
-                return await re_error(conn, 33)
+            threading.Thread(target = main_sys_restart_do).start()
+            return flask.Response(get_lang(conn, "warning_restart"), status = 200)
         else:
             return easy_minify(conn, flask.render_template(skin_check(conn),
                 imp = [get_lang(conn, 'wiki_restart'), wiki_set(conn), await wiki_custom(conn), wiki_css([0, 0])],

+ 5 - 3
route/main_sys_update.py

@@ -40,7 +40,8 @@ async def main_sys_update(golang_process):
                 else:
                     linux_exe_chmod()
 
-                    await main_sys_restart_do()
+                    threading.Thread(target = main_sys_restart_do).start()
+                    return flask.Response(get_lang(conn, "warning_restart"), status = 200)
                 
                 print('Error : update failed')
             elif platform.system() == 'Windows':
@@ -54,8 +55,9 @@ async def main_sys_update(golang_process):
                 if ok == 0:
                     os.system('rd /s /q opennamu-' + up_data)
                     os.system('del update.zip')
-
-                    await main_sys_restart_do()
+                    
+                    threading.Thread(target = main_sys_restart_do).start()
+                    return flask.Response(get_lang(conn, "warning_restart"), status = 200)
             
             print('Error : update failed')
 

+ 0 - 1
route/tool/func.py

@@ -42,7 +42,6 @@ import werkzeug.debug
 import flask
 import asyncio
 import aiohttp
-import hypercorn
 
 import requests
 from PIL import Image