用 VS Code 的 Codex 插件时,在本地和远程服务器上都有安装,通常本地的能正常唤起,但是服务器上的总是很卡顿,要不就是边栏一直是黑的,要不就是一直是codex的图标在但是没有后续,接着 VS Code 一直冒窗口未响应弹窗,然后不动了……
一顿自检之后发现可能是同一账号下 Codex app-server 重复启动,导致多个进程阻塞。
问题判断
如果 VS Code 已经进入以下状态:
- VS Code 渲染窗口频繁无响应;
- Codex 扩展不断启动
app-server; - 即使手动结束相关进程,Codex 进程仍会被重新拉起。
此时不要继续反复点击:
- “重新打开”
- “继续等待”
可以试试:
先临时禁用本地 Codex 扩展和远程 Codex 扩展,让 VS Code 恢复正常,再处理Codex问题。
状态检查
可以先用
pgrep-af'codex|openai.chatgpt'|grep$USR看一看你的账户有多少个codex进程,如果你只开了一个Remote SSH 窗口/一个工作区,但是显示
1252655... openai.chatgpt-26.623.141536... codex app-server1254264... openai.chatgpt-26.623.141536... codex app-server这样就是不正常的,有可能是 Codex 扩展异常重启、旧进程残留、Webview/app-server 握手失败。
注意要grep查看你自己的进程,后面全部的处理流程如果不是你自己的本地电脑,要避免把别人的进程拉出来删了。
下面提供两种可能的解决思路,如果急用,可以直接看解决思路B。
解决思路A:把阻塞进程kill掉
思路A-简单版:
如果是在多人共用的服务器上,先确认下自己账户
whoami确认是你自己的账户后,只杀自己账号的 VS Code Codex app-server:
pkill-u"$USER"-f'codex app-server'rm-rf~/.codex/tmp/arg0/* pgrep-u"$USER"-af'codex|openai.chatgpt'||echo"没有 Codex 残留进程"如果清理干净了应该是没有进程残留的。
然后回 VS Code 执行:
Developer: Reload Window或者稳妥一点,直接关了 VS Code 之后重启,重新连接远程。
思路A-深入版:
如果简单版操作完,重新打开 VS Code,执行:
pgrep-u"$USER"-af'codex|openai.chatgpt'发现:
又冒出来几个新的进程。还是不断的冒弹窗。
并不一定是简单版处理中进程没有被彻底结束,更可能是:
VS Code Remote Extension Host 又自动启动了 Codex
app-server。
可以尝试按照下面的顺序执行。
第一步:关闭本地 VS Code
直接手动关闭你的 VS Code。记得保存你现在的工作区,避免内容丢失。
或者打开 Windows PowerShell,执行:
Get-ProcessCode-ErrorAction SilentlyContinue|Stop-Process-Force如果不确定上面两步是否彻底,也可以直接关了 VS Code 重启电脑。
第二步:通过普通 SSH 终端清理远程环境
1. 使用独立终端连接服务器
不要使用 VS Code 内置终端。
请使用以下任一工具:
- Windows Terminal
- Windows PowerShell
- 其他独立 SSH 客户端(git bash)
连接服务器:
ssh你的账户名@你的服务器地址如果是在本地出错,这一步省略,后续的操作在本地进行。
2. 清理远程 Codex 和 VS Code Server
登录服务器后,完整执行以下脚本:
echo"[1/6] 当前用户:"whoamiecho"[2/6] 杀掉当前用户的 Codex app-server..."pkill-u"$USER"-f'openai.chatgpt-.*/codex .*app-server'2>/dev/null||truepkill-u"$USER"-f'codex .*app-server'2>/dev/null||truesleep2echo"[3/6] 杀掉当前用户的 VS Code Server,防止它继续拉起 Codex..."pkill-u"$USER"-f'.vscode-server'2>/dev/null||truesleep3echo"[4/6] 再次清理 Codex app-server..."pkill-u"$USER"-f'openai.chatgpt-.*/codex .*app-server'2>/dev/null||truepkill-u"$USER"-f'codex .*app-server'2>/dev/null||trueecho"[5/6] 临时移走远程 Codex 扩展..."mkdir-p"$HOME/.vscode-server/extensions.disabled"fordin"$HOME"/.vscode-server/extensions/openai.chatgpt-*;doif[-e"$d"];thenmv"$d""$HOME/.vscode-server/extensions.disabled/"fidoneecho"[6/6] 清理 Codex 临时缓存并检查残留..."rm-rf"$HOME/.codex/tmp/arg0/"*2>/dev/null||truepgrep-u"$USER"-af'codex|openai.chatgpt'||echo"没有 Codex 残留进程"3. 检查执行结果
最后一行的理想输出是:
没有 Codex 残留进程如果仍然看到类似下面的普通 Node.js 或 Codex 相关进程:
node ... codex但它不是app-server,可以暂时不处理。
重点是不能再出现:
openai.chatgpt-.../codex ... app-server第三步:重新打开 VS Code
重新连接 Remote SSH。
由于本地和远程的 Codex 扩展都已经被临时移走,VS Code 此时应当不会再反复出现:
窗口未响应VS Code 恢复后如何处理 Codex
等 VS Code 完全稳定后,再安装 Codex 扩展。
如果安装最新版 Codex 后问题仍然出现,建议回退到前一个版本安装。
解决思路B:重启重装大法
发现很多 Codex 的衍生插件,比如账号切换类的软件,可能有如下风险:
1)会改 auth.json
Codex 侧栏和 Codex CLI 都依赖当前账号状态。如果 Codex 侧栏的 app-server 正在运行时,另一个扩展切换了全局 auth.json,可能导致 Codex 后端和前端会话状态不一致,表现为一直 loading、黑屏、要求重载。
2)可能触发重载或重启链路
该扩展支持账号切换后提示同步/重载窗口,也有“自动切号后重载当前 VS Code 窗口”的配置。 如果 Codex 本身已经处于 app-server 残留或 Webview 加载异常状态,额外 reload 可能让 VS Code Remote extension host 反复拉起新的 codex app-server。
3)Remote SSH 场景更容易混乱
因此,万能的笨办法就是把 Codex extension 卸载了,相关插件也卸载了,关闭 VS Code,重启你的电脑。然后重新安装,记得先安装 Codex,如果单独的 Codex 能用,那问题八成就是出在相关插件上了。
虽然这样比较笨拙,但大部分情况下能让“天才程序员”重新上线。
这里因为短时间内还没有复现这个问题,没有 VS Code 日志信息去研究具体报错信息,希望有相同情况还通过研究具体报错解决了的大佬分享更严谨的解决思路~