如何查找并删除 Mac 上的启动和登录项目

MacBook 启动

当您打开 Mac 时,各种应用程序、加载项和不可见的后台进程都会开始自行运行。这通常是您想要的,但有时您可能会看到正在运行的项目,但您不记得自己添加过这些项目。他们从哪里来?

有时这些进程和应用程序可能会导致问题,您需要将其删除才能使 Mac 正常运行。即使没有问题,此类项目也会增加 Mac 的启动时间并可能降低性能,您需要确保 Mac 只加载对您有用的项目。以下是有关各种启动和登录项以及如何管理它们的快速入门。

登录项

MacOS 13 (Venutra) 或更高版本:打开”系统设置”并点击”常规”,然后点击”登录项”。您将看到每次登录时打开的应用程序列表,然后是允许在后台运行进程的应用程序列表,即使该应用程序未运行(例如检查更新或同步数据)。

Mac 启动项

Foundry

MacOS 12 (Monterey) 或更早版本:打开”系统偏好设置”并点击”用户和组”,然后点击”登录项”选项卡。您将看到每次登录时打开的应用程序(甚至文件和文件夹)列表。此列表对于 Mac 上的每个用户帐户都不同。

项目通常会出现在此列表中,因为您安装的应用程序将它们添加到了其中。大多数这样做的应用程序首先会请求您的许可,或者在其设置中具有”登录时打开”或类似的复选框。在任何情况下,您都可以通过单击 (+) 按钮手动将项目添加到列表中,或者通过选择项目并单击减号 (-) 按钮来删除项目。您可能还需要登录您的 Mac 用户个人资料才能进行更改

StartupItems 文件夹

早期版本的 macOS 依赖两个文件夹(/Library/StartupItems 和 /System/Library/StartupItems)来保存指定在启动 Mac 时加载的项目。 Apple 现在不鼓励使用 StartupItems 文件夹,但一些旧应用程序可能仍会使用它们。

通常情况下,您的 /System/Library/StartupItems 文件夹应该为空,但如果其中包含您不再使用的内容,您可以将不需要的项目拖到废纸篓中,以防止它在您下次启动时自动加载。麦克。

启动守护进程和代理

自 OS 10.4 Tiger 以来,Apple 为开发人员提供了另一种自动启动项目的机制:启动守护进程和代理launchd 进程控制。这为开发人员提供了更大的灵活性,但对用户来说不太透明。

launchd 不是直接打开应用,而是加载特殊格式的 .plist 文档,这些文档指定应启动什么内容以及在什么情况下启动。有时这些启动项会在后台持续运行,有时会按计划的时间间隔运行,有时会根据需要运行(例如,响应特定文件或文件夹中的更改等事件),然后退出。

launchd 使用的 .plist 文件可以占用三个文件夹中的任何一个,它们的位置决定每个项目何时加载以及具有哪些权限:

  • /Library/LaunchDaemons 和 /System/Library/LaunchDaemons 中的项目会在 Mac 启动时加载,并以 root 用户身份运行。

  • 任何用户登录时,/Library/LaunchAgents 和 /System/Library/LaunchAgents 中的项目都会加载,并以该用户身份运行。

  • /Users/[您的用户名]/Library/LaunchAgents 中的项目仅在该特定用户登录时加载,并以该用户身份运行。

不要更改系统文件:在这些文件夹中,位于 /System 文件夹中的两个(/System/Library/LaunchDaemons 和 /System/Library/LaunchAgents)用于存放作为 macOS 一部分包含的组件,您应该抵制删除或更改它们的诱惑 – 它们可能对于保持 Mac 正常运行至关重要。

根据需要修改其他文件夹:随意浏览其他文件夹中的文件以查看其中的内容。您可以修改它们 – 例如,禁用它们或更改它们的运行频率 – 但在此之前,您应该了解有关它们如何工作的一些知识。

macOS 的一大烦恼就是这些 .plist 文件的构建和维护。在 macOS 13 中,Apple 为开发人员提供了一种将这些帮助程序文件保留在应用程序包本身中的方法,这样当您删除应用程序时它们就会消失。它更加干净和简单,但必须专门为 macOS 13 开发应用程序才能使用该系统,因此它还需要一段时间才能成为常态。

当您启动 Mac 或登录时,将加载相关文件夹中的启动项(即向系统注册),除非它们设置了”禁用”标志。此后,即使您将启动项拖到废纸篓,它们的指令也会一直执行,直到您重新启动。要查看 Mac 上当前加载的所有启动项的列表,请打开终端(位于 /Applications/Utilities 中)并输入 launchctl list,然后按 Return 键。

如果您想在无需重新启动的情况下停止启动项运行,请打开终端应用并输入 launchctl unload ,后跟一个空格和启动项的完整路径。例如,采用以下命令:

launchctl 卸载 ~/Library/LaunchAgents/com.apple.FolderActions.enabled.plist

它会卸载启用 AppleScript 文件夹操作的启动代理。使用 load(而不是 unload)重复该命令以将其重新打开。

提示:添加项目完整路径的一种简单方法是将项目从 Finder 拖动到终端窗口。

由于大多数启动项都按计划或按需运行,而且它们中的任何一个都可能被禁用,因此某个文件夹中存在某些内容这一事实并不一定意味着它所管理的进程当前正在运行。要查看当前正在运行的内容,请打开”活动监视器”,但请记住,活动监视器中显示的给定进程的名称可能与告诉 macOS 启动它的 .plist 文件的名称不同。

神秘过程的其他解释

虽然这些方法是在 macOS 中自动启动应用程序的最常见方法,但它们并不是唯一的方法。如果您有一个无法在这些地方追踪的神秘过程,它也可能是以下之一:

内核扩展:内核扩展或 .kext 文件位于 /System/Library/Extensions 中并在启动时加载。它们提供低级功能,例如处理音频和添加对外围设备的支持。 Mac 上的大多数 kext 都是 macOS 的一部分。删除第三方驱动程序的最安全方法是运行开发人员提供的卸载程序。

Cron: Cron 是 macOS 中内置的 Unix 调度实用程序。它或多或少不再被使用,取而代之的是 launchd,但你永远不知道在经历过大量更新或运行旧软件的 Mac 上可能会残留什么。

登录脚本:登录脚本(如启动项)曾在旧版本的 macOS 中使用,但现已弃用。