Skip to content

Ray-ymq/DasdGuard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DasdGuard

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.app
  • build/DasdGuard-macOS.zip

构建脚本会生成 Universal 2 可执行文件、应用图标,并进行 ad-hoc 签名。完整验证可运行:

./scripts/test.sh

使用

  1. DasdGuard.app 移到 /Applications
  2. 第一次打开时选择“启用”,然后完成 macOS 管理员授权。
  3. 菜单栏出现盾牌图标后,后台保护已经运行。
  4. “登录时显示菜单栏”只控制界面是否随登录启动;系统级监控服务本身始终开机自启。

未使用 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 的后台任务调度功能;它只在检测到异常内存后终止该进程,让系统重新拉起。

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors