DasdGuard 是一个轻量的 macOS 菜单栏应用,用来监控系统进程 dasd 的异常内存增长。它把后台守护脚本、管理员授权安装和实时状态查看整合到一个可点击的 .app 中。
这是针对 macOS 测试版中
dasd内存泄漏现象的临时缓解工具,不是 Apple 官方软件,也不能替代系统更新或回退稳定版本。
- 菜单栏实时显示
dasd内存占用和保护状态。 - 首次启动通过 macOS 标准管理员授权安装 LaunchDaemon。
- 后台服务每 30 秒检查一次,开机自动运行,不依赖菜单栏应用保持打开。
- 默认 1 GB 警告、2 GB 自动重启
dasd,两次处理至少间隔 5 分钟。 - 支持立即刷新、手动重启
dasd、查看日志、重新安装和完整卸载(含监控日志)。 - 日志达到 5 MB 后自动轮转,最多保留三份历史日志。
- 原生 Universal 2 应用,同时支持 Apple Silicon 和 Intel Mac。
- macOS 13 或更高版本。
- 管理员账户,用于安装或卸载系统级后台服务。
- 从源码构建时需要 Xcode Command Line Tools。
chmod +x build.sh scripts/*.sh
./build.sh构建结果:
build/DasdGuard.appbuild/DasdGuard-macOS.zip
构建脚本会生成 Universal 2 可执行文件、应用图标,并进行 ad-hoc 签名。完整验证可运行:
./scripts/test.sh- 将
DasdGuard.app移到/Applications。 - 第一次打开时选择“启用”,然后完成 macOS 管理员授权。
- 菜单栏出现盾牌图标后,后台保护已经运行。
- “登录时显示菜单栏”只控制界面是否随登录启动;系统级监控服务本身始终开机自启。
未使用 Apple Developer ID 签名的 GitHub 构建可能被 Gatekeeper 提醒。请在 Finder 中右键应用并选择“打开”。对外发布时建议使用自己的 Developer ID 完成签名和 notarization。
| 项目 | 默认值 |
|---|---|
| 检查间隔 | 30 秒 |
| 警告阈值 | 1024 MB |
| 自动处理阈值 | 2048 MB |
| TERM 等待时间 | 5 秒 |
| 两次处理冷却时间 | 300 秒 |
| 单个日志上限 | 5 MB |
超过严重阈值后,后台服务先向 dasd 发送 TERM。如果旧进程 5 秒后仍存在且仍然是 dasd,才发送 KILL。macOS 的 launchd 通常会自动拉起新的 dasd 进程。
- 后台脚本:
/Library/Scripts/dasd-watch.sh - LaunchDaemon:
/Library/LaunchDaemons/com.ray.dasd-watch.plist - 监控日志:
/Library/Logs/dasd-watch.log - launchd 错误日志:
/Library/Logs/dasd-watch.launchd.err.log
应用可执行文件提供只读状态输出,便于排查和自动化:
./build/DasdGuard.app/Contents/MacOS/DasdGuard --status重启 dasd 可能会让当时正在排队的系统后台任务延后执行。DasdGuard 不会删除 dasd、修改 SIP,也不会关闭 macOS 的后台任务调度功能;它只在检测到异常内存后终止该进程,让系统重新拉起。