DevTrends开发者趋势
主题色

iihao /

devcheck

一句话:Mac 菜单栏端口地图,告诉你每个端口被谁占用、属于哪个代码项目、以及该怎么处理。 两个真实痛点: 1. npm run dev 报 EADDRINUSE,lsof -i :3000 只给一个 PID,不知道是哪个项目留下的旧进程; 2. 5000 端口被 macOS 自己的「隔空播放接收器」(ControlCenter)占着,服务能起来但静默失败,排查很久。 而且 lsof 会把二十多个桌面应用和系统守护进程一起列出来,噪音太…

语言SwiftDT数据与运维DT桌面效率DT命令行工具DT桌面应用DTmacOSDT终端原始developer-experience原始developer-tools原始devtools原始homebrew原始lsof原始lsof-alternative

关于

一句话:Mac 菜单栏端口地图,告诉你每个端口被谁占用、属于哪个代码项目、以及该怎么处理。 两个真实痛点: 1. npm run dev 报 EADDRINUSE,lsof -i :3000 只给一个 PID,不知道是哪个项目留下的旧进程; 2. 5000 端口被 macOS 自己的「隔空播放接收器」(ControlCenter)占着,服务能起来但静默失败,排查很久。 而且 lsof 会把二十多个桌面应用和系统守护进程一起列出来,噪音太大。 做法: 端口 → 进程 → 所属项目(从进程 cwd 向上找 package.json / pom.xml / go.mod / .git) 默认隐藏 GUI 应用/系统端口,只留跟开发相关的 devcheck why 5000 用人话解释,并给处理建议(去系统设置关掉 AirPlay,或换 5001) 体检规则:同一端口被多进程占用、端口在监听但握手失败(假活)、单进程 CPU 飙高 几个刻意的技术选择: 可达性用裸 TCP 握手(connect + poll)判断,不用 HTTP——否则 Redis/MySQL 会被误判成挂了 零第三方依赖、零特权:不装任何库,不需要 sudo 或「完全磁盘访问」,没有任何网络请求和埋点 体检规则是纯函数,30 个单测;菜单栏用 AppKit,通用二进制(arm64 + x8664) 安装: brew install --cask iihao/tap/devcheck (会同时装菜单栏 App 和 devcheck 命令行。构建暂无 Apple Developer 签名,首次启动需要 xattr -dr com.apple.quarantine /Applications/DevCheck.app) 截图: CLI

收录记录

  1. HelloGitHub·用户投稿

    2026年11月3日 · 1 次收录

  2. 阮一峰周刊·用户投稿

    2026年11月3日 · 1 次收录

讨论这个产品