I built a tiny mac app to monitor and manage my development processes
9 months ago
- #macOS
- #process-management
- #development-tools
- 一款轻量级macOS状态栏应用,用于监控和管理2000-6000端口的开发进程
- 每5秒通过`lsof`命令进行实时监控
- 可视化状态栏图标,中心色块显示进程数(绿色=0,红色=1-9,橙色=10+)
- 动态上下文菜单每3秒更新当前进程及终止选项
- 一键终止单个或全部进程
- 采用SIGTERM→SIGKILL策略安全终止进程
- 基于`winit`事件循环构建,兼容macOS系统
- 完善的错误处理机制,应对权限错误和进程故障
- 纯状态栏应用,无主窗口界面
- 状态栏图标提供即时视觉反馈,悬停提示精确进程数
- '终止所有进程'选项可关闭检测到的全部开发进程
- 单个进程菜单项格式为"终止: 端口[port]: [进程名] (PID [pid])"
- 提供退出应用程序选项
- 系统要求: macOS 10.15+、Rust 1.70+、需支持`lsof`命令
- 通过克隆仓库并执行`cargo build --release`安装
- 使用`./run.sh`或手动执行`cargo run --release`运行
- 主线程通过`winit`事件循环处理UI事件和菜单交互
- 进程监控器每5秒用`lsof`扫描进程
- 进程变化时菜单每3秒自动更新
- 进程终止操作在后台线程执行确保UI响应
- 使用`lsof -ti :PORT -sTCP:LISTEN`检测进程
- 先SIGTERM优雅终止,500ms未响应则发送SIGKILL
- 监控2000-6000端口范围,覆盖常见开发服务端口
- 纯白背景搭配色块中心,极简美学设计
- 依赖项含`tray-icon`、`winit`、`nix`、`crossbeam-channel`、`tokio`、`anyhow`、`serde`
- 项目结构包含`main.rs`、`lib.rs`、`app.rs`、`process_monitor.rs`、`tray_menu.rs`、`types.rs`
- 调试指南涵盖权限错误、进程检测问题和启动故障处理
- 采用FSL-1.1-MIT双重许可证
- 贡献指南包括fork项目、创建特性分支、修改代码、补充测试、提交PR
- 隐私保护: 无数据收集、无网络通信、不记录敏感信息
- 安全考虑: 仅限终止用户自有进程,无法操作系统进程或其他用户进程