VS Code使用remote-ssh连接Linux服务器产生大量node僵尸进程如何解决?
VS Code Remote-SSH大量node僵尸进程解决方案
问题现象
使用VS Code Remote-SSH连接Linux服务器时,通过top命令可观测到大量command为node的僵尸进程,截图如下:
根因说明
该问题是VS Code远程服务进程异常断连时未正确回收启动的node子进程导致,多发生在网络波动被动断开SSH连接的场景。
临时清理方案
- 先定位僵尸进程的父进程ID:执行
ps -ef | grep defunct | grep node,输出中第三列即为对应僵尸进程的父PID(PPID) - 终止对应的父进程即可自动回收僵尸进程:执行
kill -9 <替换为实际父PID> - 若存在大量僵尸进程可批量清理所有残留的vscode-server进程:执行
ps -ef | grep vscode-server | grep -v grep | awk '{print $2}' | xargs kill -9
注意:批量清理操作会断开当前所有Remote-SSH连接,重连后VS Code会自动重启远程服务,不会影响服务器其他业务进程。
永久规避方案
- 升级VS Code本体和Remote-SSH插件到最新正式版,微软已在高版本中修复了大部分进程泄漏问题
- 打开VS Code设置页,搜索
remote.SSH.shutdownAfterDisconnect,将该配置项设置为true,确保断开SSH连接后远程服务主动终止所有子进程 - 若网络环境不稳定,可将
remote.SSH.connectTimeout配置项调大到30以上,减少异常断开概率
验证方法
清理完成后执行top -b -n 1 | grep node | grep defunct,无输出则说明僵尸进程已全部回收。
内容的提问来源于stack exchange,提问作者QXian
相关产品推荐
相关产品推荐

