dsh-port-guard
在终端中运行以下命令:
dsh plugin install PangYiMing/dsh-port-guard
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install PangYiMing/dsh-port-guard 即可安装该插件,开源仓库地址为 https://github.com/PangYiMing/dsh-port-guard。
插件介绍
EADDRINUSE 是每次 dev server 启动时最熟悉的报错,也最容易让人条件反射式地 kill 掉占用进程。但 dsh-port-guard 的核心判断是:端口被占不等于该杀。上次会话遗留的 dev server 应该直接复用,别人的项目进程应该换端口绕开,只有确认是僵尸残留才值得精确清理。先判断归属,再决定动作。
插件的第一步是取证:打印占用进程的完整身份,包括 PPID、tty、文件描述符指向、运行时长与内存占用。PPID 等于 1 说明是孤儿进程,tty 为空说明不是人在终端里跑的,fd 指向 .log 文件则是 nohup 启动的 agent 或脚本指纹。把这些线索组合判读,就能明确该复用、该绕开、还是该精确 kill。
处置时遵循明确的安全红线:绝不 killall node,绝不碰 PID 低于 100 的系统进程,别人的进程不杀,命令行看不懂就停下来报告用户。所有操作只针对精确 PID,不误伤其他正常服务。
适合频繁切换多项目的前端与全栈开发者、用 agent 脚本批量拉起 dev server 的团队,以及任何不希望一次端口冲突就丢失仍在运行服务的场景。
使用场景
- dev server 启动报 EADDRINUSE,需判断该复用还是该杀
- 多项目并行开发时端口冲突频发需快速处置
- agent 脚本批量拉起服务后残留进程占用端口
适合人员
- 频繁切换多项目的前端与全栈开发者
- 用 agent 脚本批量管理 dev server 的团队
- 重视进程安全、拒绝无脑 kill 的开发者