“the terminal process failed to launch”本质是vscode无法spawn指定shell进程,主因是配置路径错误、权限不足、系统策略拦截或扩展劫持;需逐项验证shell真实路径、磁盘访问权限、执行策略及终端类插件。

“The terminal process failed to launch” 本质是 VSCode 启动 shell 子进程失败,不是终端界面卡了,而是连 shell 都没跑起来——常见于路径错、权限缺、策略拦、扩展劫。
终端启动失败时控制台报 Failed to spawn /bin/zsh ENOENT
这表示 VSCode 找不到你配置的 shell 可执行文件。它不关心你系统里有没有 zsh,只认设置里写的绝对路径是否真实存在且可执行。
- 在系统终端运行
which zsh或where zsh.exe(Windows),把输出的完整路径复制过来 - 打开 VSCode 设置(
Ctrl+,),搜索terminal.integrated.profiles.windows(或对应平台项),确保"path"值用双引号包裹,例如:"C:\Program Files\PowerShell\7\pwsh.exe" - 路径含空格或中文?必须加引号,否则 Windows 下解析失败;macOS/Linux 上也建议统一加引号避免歧义
- macOS M1/M2 用户特别注意:别配 Rosetta 版本的
/usr/local/bin/zsh,改用原生路径如/opt/homebrew/bin/zsh
终端一闪而退或空白,退出码 -1073741571(Windows)
这是 PowerShell 5.1 初始化栈溢出的典型错误,几乎全是 $PROFILE 文件里有递归加载、无限制遍历或未处理异常的模块导入导致。
- 先临时换终端验证:右上角 ▼ → 选
Command Prompt,如果能稳定打开,就锁定是 PowerShell 问题 - 运行
notepad $PROFILE,逐行注释掉可疑代码(尤其是Get-ChildItem -Recurse、Import-Module *、未加&的后台命令) - 更彻底的解法:升级到 PowerShell 7+,并在设置中显式指定
pwsh.exe路径,它对 profile 加载更健壮 - 别忘了执行策略仍需单独设置:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,否则新 pwsh 一样被拦
macOS 上终端打不开,控制台报 EACCES 或完全无日志
VSCode 在 macOS(尤其更新后)常因缺失「完全磁盘访问」权限无法拉起子进程,系统直接拒绝 spawn 调用,不报具体路径错误。
- 前往「系统设置 → 隐私与安全性 → 完全磁盘访问」,把 VSCode 拖进去(不是 VS Code.app 的别名,是实际应用文件)
- 如果已添加但无效,尝试重启 Mac —— 某些版本需要重载 TCC 数据库
- 检查终端是否被杀软拦截:临时关闭实时防护,再试一次;若恢复,则将
Code和对应解释器(如python3、node)加入白名单 - 用户 shell 被设为
/usr/sbin/nologin?运行dscl . -read ~ UserShell确认,错误值需用chsh -s /bin/zsh修正
禁用扩展后终端正常,但启用后又失败
终端增强类插件(如 Terminal Tabs、Shell Launcher、旧版 PowerShell 插件)会覆盖 VSCode 的终端初始化流程,导致 spawn 被劫持或参数被篡改。
- 不要逐个启停全部扩展——先聚焦名称含
terminal、shell、console、profile的插件 - 禁用后无需重启 VSCode,右键任意终端标签页 →
Reopen Terminal即可验证 - 某些插件会在 settings.json 中写入
terminal.integrated.*配置,禁用后记得手动删掉这些残留项,否则重装仍复现 - 如果必须用某插件,查看其文档是否要求特定 shellArgs 或 profile 配置,不匹配就会静默失败
真正麻烦的从来不是单点故障,而是策略 + 权限 + 路径 + 扩展四层叠加:比如你改了 PowerShell 策略,但终端配置仍指向一个不存在的 bash.exe,同时又装了 Terminal Tabs 插件,最后 macOS 还没收全磁盘权限——四层里只要一层断掉,终端就彻底黑屏。排查时每次只动一项,不然根本分不清是谁扔的石头。











