Hasty Briefsbeta

双语

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
  • 隐私保护: 无数据收集、无网络通信、不记录敏感信息
  • 安全考虑: 仅限终止用户自有进程,无法操作系统进程或其他用户进程