通知中心需通过launchctl彻底禁用用户级和系统级服务:先卸载com.apple.notificationcenterui.plist并禁用其自启,再sudo禁用system/com.apple.notificationcenter;清理notificationcenter缓存后,notificationcenterd进程应完全消失且通知功能静默失效。

Mac系统通知中心(Notification Center)的底层由多个守护进程协同驱动,其中notificationcenterd是核心服务,负责接收、聚合、渲染和分发所有应用通知。若该进程持续异常唤醒、占用CPU、弹出无关横幅或与第三方工具冲突,需从launchd服务层彻底禁用——仅关闭“通知设置”或使用专注模式无法阻止其后台加载与资源占用。
确认当前通知中心服务状态
打开终端,执行:launchctl list | grep -i notification。若输出中包含com.apple.notificationcenter或notificationcenterd,说明服务已注册并可能正在运行;若无输出,则该服务当前未激活,无需后续操作。
禁用用户级通知中心守护进程
通知中心在当前用户登录后由~/Library/LaunchAgents/com.apple.notificationcenterui.plist拉起UI组件,而核心逻辑由系统级服务托管。先处理用户层:
执行命令移除用户代理配置:launchctl bootout gui/$(id -u) /Users/$(whoami)/Library/LaunchAgents/com.apple.notificationcenterui.plist 2>/dev/null || true。
再禁用其自启权限:launchctl disable gui/$(id -u)/com.apple.notificationcenterui。
【必须执行此步】否则下次登录仍会自动加载通知中心UI,导致菜单栏右侧出现空通知图标或点击后闪退。
停用系统级通知中心服务
系统级服务com.apple.notificationcenter位于/System/Library/LaunchDaemons/,受SIP保护不可直接删除或修改。但可通过launchctl标记为禁用:
执行:sudo launchctl disable system/com.apple.notificationcenter。
该命令不会报错也不显示提示,成功即表示系统启动时不再尝试加载该服务。注意:此操作不影响Dock、聚焦搜索等基础功能,仅切断通知推送链路。
重启后验证:打开“活动监视器”,切换到“所有进程”,搜索notificationcenterd,应完全不出现。
清除残留通知数据与缓存
即使服务已禁用,~/Library/Application Support/NotificationCenter/目录下仍可能堆积旧通知数据库,导致下次启用时加载异常。手动清理:
运行:rm -rf ~/Library/Application\ Support/NotificationCenter/*。
接着重置通知偏好设置缓存:defaults delete com.apple.notificationcenterui && killall NotificationCenter。若提示No matching processes可忽略,说明进程已不存在。
验证禁用效果
方法一:终端中执行ps aux | grep notificationcenter,返回结果中不应含notificationcenterd或NotificationCenter进程名。
方法二:点击菜单栏右上角时间区域——原本显示通知横幅的位置应彻底空白,且点击后无任何响应;打开“系统设置→通知”,所有应用条目将显示“通知被系统策略禁用”灰色提示。
方法三:在终端中输入osascript -e 'display notification "测试" with title "终端通知"' ,该脚本将静默失败,不弹窗、不发声、无日志输出。











