如何关闭 Mac 开机启动项和后台项目
Mac 的自启动行为不只有登录时弹出的应用,还包括应用注册的后台项目、launchd 代理与守护进程、系统扩展和其他配套服务。关闭其中一项,可能缩短登录时间或停止不需要的辅助程序,也可能让同步、更新、快捷键、VPN、备份或安全功能失效。不要只凭名字判断,先确认它属于谁、负责什么。
登录项:最直观的一份列表
打开「系统设置 > 通用 > 登录项与扩展」。Apple 的登录项使用说明介绍了这个页面里的两个主要区域。
上半部分「登录时打开」会列出登录后自动打开的应用、文档、文件夹或服务器。选中不需要自动启动的项目,再点击减号即可移除。这里的移除不会卸载应用,只会取消这一条登录指令。
允许在后台:不一定有窗口的辅助程序
同一页面的「允许在后台」会按开发者归类显示更新器、同步辅助程序、菜单栏工具和配套服务。关闭开关,意味着撤回这款应用注册后台工作的权限。
如果进程已经运行,先退出应用或注销一次,再判断开关是否生效。随后测试所属应用,因为菜单栏状态、同步、自动更新或硬件集成功能可能依赖这个后台项目。
如果只是想诊断登录变慢,不必一开始就修改列表。登录时按住 Shift,直到程序坞出现,macOS 会在本次会话中临时阻止自动登录项。如果问题消失,再回到列表,每次只关闭一个候选项并复测。
为什么应用退出后还会重新出现
应用可能因为 launchd 任务、Service Management 登录项、应用扩展、另一个进程请求的辅助程序,或应用自己的设置而重新启动。旧式 launchd 定义通常位于:
~/Library/LaunchAgents/Library/LaunchAgents/Library/LaunchDaemons
但这三个目录并不是完整清单。下面的命令可以只读查看当前用户域:
launchctl print gui/$(id -u)
输出主要用于诊断,其中的服务标签不一定与文件名或应用名一致。优先使用应用自己的设置、macOS 的后台开关或厂商卸载器。不要从进程名猜一个 plist,再直接把它删除。
怎样安全关闭自启动项
一次只在系统设置里关闭一项,必要时注销并重新登录,然后测试它所属的功能。如果同步、备份、输入设备、VPN、安全防护或应用更新停止工作,就把它重新打开。
不要改动 Apple 服务,也不要手动处理 /Library/LaunchDaemons。厂商守护进程应由厂商卸载器移除,因为卸载器可以先安全地卸载服务,再清理特权组件。
launchd 的工作方式,以及应用为什么无法保持退出
launchd 管理着许多后台任务。不过在 macOS 13 及以后,Apple 要求应用通过 SMAppService 注册登录项、代理和守护进程,扩展则有自己的生命周期。
一个 launchd plist 可以使用 RunAtLoad、KeepAlive、套接字、路径、定时器或其他条件。因此,KeepAlive 只是应用重新启动的一种原因,不是所有问题的通用答案。~/Library/LaunchAgents 里的代理按用户运行,只存在于你的登录会话中;/Library/LaunchDaemons 里的守护进程会在任何用户登录前以 root 身份运行,所以后者需要管理员权限,前者通常不需要。
从 macOS Ventura 开始,后台任务管理让用户能够看到并控制许多第三方后台项目,但它并不保证每个服务都会表现为一个简单开关。其受保护的数据库属于系统状态,不应该直接编辑。
统一清单有什么用
系统设置的两个区域和 launchd 目录分散在不同位置,却都在回答同一个问题:哪些内容会自行启动,又是谁让进程持续存在。
Mole 的启动项管理会把它们汇总到一份列表,说明每项是什么,并允许你切换那些能精确匹配到已验证 launchd 任务或系统注册登录项的内容。无法证明身份的项目应该转到系统设置处理,而不是写入受保护数据库,或凭空构造一个服务标签。工具能处理到哪里,应以它能验证的身份边界为准。
一次安全的启动项检查
先测量登录或空闲时的实际影响,再确认厂商与功能。通过应用自身设置或「登录项与扩展」关闭一项,然后测试。列表更短不代表 Mac 一定更好,备份、安全、同步和设备辅助程序的开销可能完全值得。避免手动编辑 plist,也不要直接改后台任务管理数据库。