VSCode远程连接VM时提示存在不存在的终端会话问题排查
我用VSCode Remote Extension连接Ubuntu虚拟机,重载窗口时总会弹出警告:“是否终止6个活动终端会话?”,但我没打开任何终端,只有2个端口转发。已经执行sudo ss -tnp | grep sshd查看SSH连接,只发现2个连接。VSCode已更新,从Windows端连接远程Ubuntu,已装扩展如下:
code --install-extension Extensions installed on SSH: Dev: code --install-extension github.copilot code --install-extension github.copilot-chat code --install-extension ms-python.black-formatter code --install-extension ms-python.debugpy code --install-extension ms-python.python code --install-extension ms-python.vscode-pylance code --install-extension redhat.java code --install-extension visualstudioexptteam.intellicode-api-usage-examples code --install-extension visualstudioexptteam.vscodeintellicode code --install-extension vscjava.vscode-gradle code --install-extension vscjava.vscode-java-debug code --install-extension vscjava.vscode-java-dependency code --install-extension vscjava.vscode-java-pack code --install-extension vscjava.vscode-java-test code --install-extension vscjava.vscode-maven
以下是找到这些活动终端会话的方法:
查看VSCode内部的活动终端列表
打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),输入Terminal: List Active Terminals,查看所有被VSCode标记为活动的终端——包括后台运行的(比如扩展自动启动的)。找到后点击对应条目就能打开终端窗口,查看背后的运行进程。在远程Ubuntu上排查相关进程
登录Ubuntu虚拟机,执行以下命令查找可能的终端进程:ps aux | grep -E "(bash|zsh|sh)" | grep -v grep或者精准定位VSCode远程服务关联的进程:
ps aux | grep "vscode-server"这些进程里可能包含扩展后台启动的终端(比如Java的Maven/Gradle、Python格式化工具都会悄悄启动终端执行任务)。
排查扩展的后台终端
部分扩展会在后台启动终端进程,这类终端不会显示在VSCode的终端面板,但会被算作活动会话。可以临时禁用所有扩展,重载窗口看警告是否消失;如果消失,再逐个启用扩展,找出触发问题的那个。查看VSCode日志
打开VSCode的输出面板(View > Output),选择Remote - SSH或Terminal相关日志,查找终端会话创建的记录,能直接看到是哪个组件创建了这些会话。
内容的提问来源于stack exchange,提问作者navidda

