diff --git a/.gitignore b/.gitignore index ea100c1..8558508 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ install.spec start.spec build/ ~$据库本地运行.docx +数据库组件本地安装/ +数据库组件本地安装.zip diff --git a/dist/start.exe b/dist/start.exe index 928acc4..2d608d4 100644 Binary files a/dist/start.exe and b/dist/start.exe differ diff --git a/src/start.py b/src/start.py index 845e953..31b40d9 100644 --- a/src/start.py +++ b/src/start.py @@ -1,7 +1,6 @@ import os import time -import elevate from loguru import logger import subprocess import sys @@ -93,25 +92,21 @@ def start(): def kill_process_by_port(run_port): # 执行netstat命令获取端口占用信息 - cmd_netstat = ['netstat', '-ano', '-p', 'tcp'] + cmd_netstat = ['netstat', '-ano', '|', 'findstr', fr':{run_port}'] result = subprocess.run(cmd_netstat, capture_output=True, text=True, shell=True) + out = result.stdout + if out: + arr = re.split(r'\s+', out) + pid = arr[5] + if pid: + try: + subprocess.run(['taskkill', '/F', '/PID', pid], check=True) + logger.info(f"已终止占用端口 {run_port} 的进程 (PID: {pid})") + except subprocess.CalledProcessError: + logger.info(f"终止进程 {pid} 失败 (可能权限不足或进程不存在)") + else: + logger.info(f"端口 {run_port} 未被占用") - # 在输出中查找指定端口 - pid = None - pattern = fr':{run_port}\s+.*LISTENING\s+(\d+)' - match = re.search(pattern, result.stdout) - if match: - pid = match.group(1) - - # 如果找到PID则终止进程 - if pid: - try: - subprocess.run(['taskkill', '/F', '/PID', pid], check=True) - logger.info(f"已终止占用端口 {run_port} 的进程 (PID: {pid})") - except subprocess.CalledProcessError: - logger.info(f"终止进程 {pid} 失败 (可能权限不足或进程不存在)") - else: - logger.info(f"端口 {run_port} 未被占用") def open_web(): webview.settings['ALLOW_DOWNLOADS'] = True @@ -120,7 +115,6 @@ def open_web(): webview.start(debug=True) if __name__ == '__main__': - elevate.elevate() kill_process_by_port(port) delete_old_files(app_log_dir, days=2) start() diff --git a/数据库本地运行.docx b/数据库本地运行说明文档.docx similarity index 100% rename from 数据库本地运行.docx rename to 数据库本地运行说明文档.docx