From 4ae1d0e79e1df9b89c9bd9edc7bfa0dcba518e64 Mon Sep 17 00:00:00 2001 From: maogeigei Date: Fri, 9 Oct 2026 07:19:15 +0800 Subject: [PATCH] =?UTF-8?q?browser-harness=EF=BC=9A=E8=A1=A5=E3=80=8C?= =?UTF-8?q?=E5=83=B5=E6=AD=BB=E6=80=81=E3=80=8D=E7=9A=84=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E4=B8=8E=E5=A4=84=E7=BD=AE=EF=BC=88=E7=94=A8=E6=88=B7=E9=80=89?= =?UTF-8?q?=20B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户令 B:⛔ 不动保活脚本,只把僵死态的识别写进常驻实例那节的排查里。 - 位置:「🔴 浏览器要由常驻后台任务开着」那节末尾(讲的就是那个常驻实例的健康) - 僵死态定义:**端口不应答、进程还活着**;判据**两条一起看**(netstat 无 LISTENING + tasklist 仍有那个 pid) - 处置:**只能重启实例**,⛔ 不在原地反复重试连接 - 记明**保活脚本兜不住它**:`bh_keep_chrome.py` 那类只做 socket 探端口,对僵死态既不判也不重启 (实测 2026-10-09 `06:56:11 port not answering (pid alive=True)` → `07:06:49` 进程才退出) 背景:2026-10-09 早上实例被反复开标签堆到僵死,用户手动关掉全部会话;同轮已加严标签纪律(见 `b7ba89d`)。 --- browser-harness/SKILL.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/browser-harness/SKILL.md b/browser-harness/SKILL.md index 13e412d..91b1d93 100644 --- a/browser-harness/SKILL.md +++ b/browser-harness/SKILL.md @@ -67,6 +67,12 @@ Direct browser control via CDP. For task-specific edits, use `agent-workspace/ag ⇒ 做法:先起一个**常驻任务**把浏览器开着(守端口,掉了就写日志),之后每次操作**只连不起**。 ⛔ 别让每次调用各自起一遍浏览器 —— 父进程一退全没,而且多个实例会抢同一个 profile。 +- 🔴 **僵死态要会认**(2026-10-09 实测):共享实例被堆爆后会进入「**端口不应答、进程还活着**」的僵死态 —— + 连接探不通,但 `tasklist` 里那个 chrome 进程仍在。⛔ **别把「端口在」当成「浏览器可用」,也别拿「进程还在」当没事**。 + 判据(**两条一起看**):① `netstat -ano | grep 127.0.0.1:9223` **无 LISTENING**;② `tasklist | grep -i chrome` **仍有那个 pid**。 + ⇒ 处置:**只能重启实例**(关掉残留 chrome,再按第 2 节重起),⛔ 不要在原地反复重试连接 —— 那只会白等。 + ⚠️ **保活脚本兜不住它**:`bh_keep_chrome.py` 那类只做 `socket.create_connection` 探端口,对僵死态既不判、也不重启, + 实测它连续十几分钟只在写 `port 9223 not answering (pid alive=True)`(2026-10-09 `06:56:11` → `07:06:49` 进程才退出)。 ### 2. 起独立实例(端口 9223)