From 613f21800a9343894c42eb2996229b8ea83bea2a Mon Sep 17 00:00:00 2001 From: saltapp <815625981@qq.com> Date: Wed, 20 May 2026 17:20:36 +0800 Subject: [PATCH] fix(cmd_status): improve process status check with error handling for psutil --- ga_cli/cli.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/ga_cli/cli.py b/ga_cli/cli.py index 9ecc4455..9518e345 100644 --- a/ga_cli/cli.py +++ b/ga_cli/cli.py @@ -119,13 +119,30 @@ def cmd_list(): def cmd_status(): """检查进程状态""" - import psutil - running = [p for p in psutil.process_iter(['pid', 'name', 'cmdline']) - if p.info['cmdline'] and any('agentmain' in c for c in p.info['cmdline'])] + try: + import psutil + except ImportError: + print("⚠️ psutil 未安装,无法检查运行状态") + return + + running = [] + try: + for p in psutil.process_iter(['pid', 'name', 'cmdline']): + try: + cmdline = p.info.get('cmdline') or [] + if any('agentmain' in c for c in cmdline): + running.append(p) + except (PermissionError, psutil.Error): + continue + except (PermissionError, psutil.Error) as e: + print(f"⚠️ 无法枚举进程: {e}") + return + if running: print(f"🟢 运行中: {len(running)} 个进程") for p in running: - print(f" PID {p.info['pid']} — {' '.join(p.info['cmdline'][:3])}") + cmdline = p.info.get('cmdline') or [] + print(f" PID {p.info['pid']} — {' '.join(cmdline[:3])}") else: print("⚫ GenericAgent 进程未运行")