如何为VS Code Remote SSH启动的vscode-server设置taskset?
给VS Code Remote SSH的远程code-server添加核心绑定(taskset)
方法1:修改本地SSH配置文件
直接在本地SSH配置里给远程主机的启动命令加包装,自动适配code-server的版本更新:
- 打开本地SSH配置文件:
- Linux/macOS:
~/.ssh/config - Windows:
C:\Users\<你的用户名>\.ssh\config
- Linux/macOS:
- 找到对应远程服务器的配置段,修改成下面的样子(把
my-server、HostName、User换成你的实际信息):
其中Host my-server HostName 192.168.1.100 User your-username RequestTTY yes RemoteCommand bash -c 'exec taskset -c 0 ~/.vscode-server/bin/$(ls -t ~/.vscode-server/bin/ | head -n1)/bin/code-server --start-server --host=127.0.0.1 --enable-remote-auto-shutdown "$@"' _$(ls -t ~/.vscode-server/bin/ | head -n1)会自动抓取最新的code-server版本目录(解决VS Code更新后commit哈希变化的问题),_是bash的占位参数,保证后续启动参数能正确传递。
方法2:远程服务器创建包装脚本
如果不想改本地配置,在远程端做个脚本中转:
- 登录远程服务器,创建脚本
~/code-server-wrapper.sh,内容如下:#!/bin/bash exec taskset -c 0 ~/.vscode-server/bin/$(ls -t ~/.vscode-server/bin/ | head -n1)/bin/code-server "$@" - 给脚本加执行权限:
chmod +x ~/code-server-wrapper.sh - 打开本地VS Code,按
Ctrl+,打开设置,搜索remote.SSH.serverInstallPath,或者直接编辑settings.json,添加:
这里的"remote.SSH.serverInstallPath": { "my-server": "~/code-server-wrapper.sh" }my-server要和你SSH配置里的主机名完全一致。
验证生效
连接远程服务器后,在远程终端执行:
ps aux | grep code-server
查看主进程的命令行是否包含taskset -c 0,或者用taskset -p <进程PID>,输出的current affinity mask如果是1,就说明已经绑定到核心0了。
内容的提问来源于stack exchange,提问作者Ivankovich
相关产品推荐
相关产品推荐

