terminus 面板关闭不等于进程退出,仅隐藏 ui,长时进程仍在后台运行;正确退出需在面板内输入 exit 或 ctrl+d,或手动杀掉残留进程。

Terminus 面板关掉 ≠ 进程退出,必须手动 exit
很多人以为点击面板右上角 × 或按 Ctrl+K Ctrl+H 隐藏 Terminus 面板,终端就停了。其实只是隐藏 UI,python server.py、npm run dev 这类长时进程仍在后台跑着,CPU 占用不降,端口也被占着。下次再开面板,看到的还是上次的会话——不是“恢复”,是根本没断。
正确做法只有两个:
- 在 Terminus 面板里手动输入
exit(或Ctrl+D对应 bash/zsh),确认进程终止 - 若已隐藏面板又忘了是否退出,打开任务管理器(Windows)或
htop(macOS/Linux),搜python、node、bash等关键词杀掉残留进程
别依赖“自动关闭”或“窗口关闭即退出”
Sublime Text 没有“关闭面板自动 kill 子进程”的机制,Terminus 也不提供该选项。它设计上就是复用 shell 会话,类似 tmux 的 pane —— 关闭只是 detach,不是 destroy。
常见踩坑点:
- 改完代码按
Ctrl+`唤起 Terminus,直接敲python main.py,结果报Address already in use:因为上个python进程还在跑 - 用
input()写测试脚本,面板一关,Python 就卡死在等待输入,但进程没退出,ps aux | grep python能查到 - 开了多个 Terminus 标签页,只关了其中一个,其他标签页里的
npm服务照常监听 3000 端口
想真后台运行?换系统终端 + nohup 或 screen
如果目标是“启动服务后彻底不管,关编辑器也不影响”,Terminus 不适合——它本质是交互式前端,不是 daemon 管理器。
更可靠的做法是用 Terminal 插件唤起真实终端,再加系统级后台指令:
- Windows:用
Terminal插件唤起 PowerShell,执行Start-Process npm -ArgumentList "run dev" -WindowStyle Hidden - macOS/Linux:唤起 Terminal.app 或 gnome-terminal 后,运行
nohup npm run dev > /dev/null 2>&1 &或screen -S dev npm run dev
注意:nohup 和 screen 的输出默认不回传到 Sublime,调试时看不到日志——这恰恰说明它已脱离编辑器生命周期,真正后台化了。
容易被忽略的点:cwd 和环境变量仍生效
哪怕你用 nohup 在外部终端启动服务,只要唤起时路径是对的(Terminal 插件默认切到 ${file_path}),服务工作目录就仍是当前项目。同样,PowerShell 或 zsh 的环境变量(如 PYTHONPATH、NODE_ENV)也照常加载——后台运行不等于“脱离上下文”。真正要小心的,反而是 Terminus 里没加 "shell": "login" 导致的环境变量缺失,那才真会找不到命令。











