前两天ssh服务器打开codex的一个对话发现无法打开并且出现了提示:已在另一个应用中打开 请先在那边关闭会话,才能在这里继续。搜寻了一下网上的一些解决办法,我是用到第二步恢复的,有遇到这种问题的可以参考一下下面的内容。
这种现象和 OpenAI Codex GitHub 上最近报告的 Remote-SSH bug 几乎完全一致:SSH 断开、VS Code 重连或插件更新后,旧的远程extensionHost/codex app-server没有退出,仍然持有这个会话的 writer lock,新 VS Code 就会显示“已在另一个应用中打开”。GitHub
建议你按下面顺序处理,一般前两步就能解决:
先在当前 VS Code 执行重新加载。按
Ctrl + Shift + P,输入并执行:Developer: Reload Window这是目前最轻量的办法,而且已有相同 Codex writer-lock 问题的报告确认,Reload Window 可以释放占用。GitHub
如果还报错,直接重启远程 VS Code Server。
Ctrl + Shift + P搜索:Remote-SSH: Kill VS Code Server on Host...选择你现在连接的服务器,然后重新连接 SSH。这个方法对你的场景尤其有效,因为已知问题正是“旧 Remote-SSH Server 留下一个 Codex app-server,新连接又启动了第二个”。GitHub
注意:如果你还有其他 VS Code 窗口连接同一台服务器,它们也会断开,需要重新连接。如果 Kill VS Code Server 后仍然存在,可以在服务器上检查 Codex 残留进程。在 Remote SSH 的 Linux 终端执行:
ps -eo pid,ppid,lstart,cmd | grep -E '[c]odex.*app-server|[e]xtensionHost'正常情况下,当前 VS Code 通常只应该对应一个正在使用的 Codex
app-server。如果看到类似两个:2196 ... openai.chatgpt-.../bin/linux-x86_64/codex ... app-server 9501 ... openai.chatgpt-.../bin/linux-x86_64/codex ... app-server就和官方 issue 里的复现情况一致:旧 Codex server 仍在占锁。GitHub
最直接的强制恢复办法是先关闭你所有连接这台服务器的 VS Code 窗口,然后用普通 SSH 登录服务器执行:
pkill -f 'codex.*app-server'再重新打开 VS Code → Remote-SSH → Codex。这不会删除你的 Codex 对话,只是结束远端 Codex 后台进程;之后插件会重新启动新的
app-server。但它会中断这个 Linux 用户当前正在运行的其他 Codex 会话,所以如果你服务器上确实还有别的 Codex 任务在跑,不要直接执行。