Mac 上的后台项目是什么?
macOS 通过 launchd 启动后台程序,launchd 是负责启动其他一切进程的系统进程。应用会向 launchd 注册一个小文件,说明要运行什么以及何时运行:登录时、每隔几分钟,或一直运行。这些文件分为两种:
- Launch agents 以你的身份在你的登录会话中运行。它们位于
~/Library/LaunchAgents(仅限你的账户),或/Library/LaunchAgents(所有用户)。 - Launch daemons 以系统身份运行,面向所有用户,在任何人登录之前就已启动。它们位于
/Library/LaunchDaemons。
大多数是无害的,有些还很有用。但它们会不断堆积:你只试用过一次的应用,可能会让更新程序运行多年。而且由于 launchd 不需要询问就会启动它们,launch agent 也正是恶意软件让自己在每次重启后重新出现的地方。“系统设置”会在“登录项与扩展”下以开关的形式显示其中许多项目,但不会告诉你每一项运行的是什么,也不会告诉你它此刻是否正在运行。
所有服务集中在一个列表中
Background Services 会直接读取 launchd,并整合它发现的内容:
| 查找位置 | 显示为 |
|---|---|
| 在你的登录会话中已加载的服务,以及已被停用的服务 | 按其标签显示 |
~/Library/LaunchAgents | User |
/Library/LaunchAgents | System |
/Library/LaunchDaemons | Daemon,只读 |
| Homebrew 服务 | Brew |
每个服务都会显示一个易读的名称和完整的标签、它的状态(Running、Stopped、Disabled 或 Not loaded),以及在运行时显示它的进程 ID。正在运行的服务排在最前。已在磁盘上但尚未加载的服务同样有它自己的一行,因此不会因为处于空闲状态而被隐藏。
随 macOS 附带的服务默认隐藏,因为停止其中任何一个都会破坏它所支持的系统功能。勾选 Show macOS services 即可一并查看,也可以使用搜索栏按名称或标签查找服务。
停止、停用或启动
Stop 会立即结束正在运行的服务。Disable 会告诉 launchd 不要再次启动它,Enable 则撤销这一操作。Start 会加载已停止的服务。停用使用的是 launchd 自己的开关,而不是重命名文件,因此 Startup Items 列表始终与之保持一致。
Launch daemons 会显示,但为只读:更改它们需要管理员密码,而本板块不会要求输入密码。
不确定某个服务是做什么的?它的标签通常会写明开发者和应用,例如 com.example.updater。停用第三方服务很容易撤销,但它所支持的功能(例如某个应用的自动更新)会停止,直到你再次启用它。如需把应用的服务连同应用一起彻底移除,请使用 Uninstaller。
新项目自行安装时,第一时间知道
在“Settings”中开启 Tell me when an app adds a background item(默认即为开启)后,Tidy My Mac 会监视 launch agent 和 daemon 文件夹以及 /Library/PrivilegedHelperTools,并且每分钟以及应用打开后不久,都会检查各应用向 macOS 注册的登录项和后台服务。你开启此功能时已经存在的项目不会触发提醒;只有新增或变化的项目才会。应用关闭期间新增的项目,会在它下次打开时报告。
通知会指明是哪个应用、该项目将运行什么,以及由谁签名。如果程序没有来自已知开发者的有效签名,会给出明确的警告,因为这对正规软件来说不寻常,而对恶意软件来说很常见。在通知中,你可以 Show 该项目、Disable 登录代理、Scan with Antivirus,或者选择 Don't Tell Me Again for This App。
在你的 Mac 上读取
该列表是在你的 Mac 上根据 launchd 和上述文件夹生成的。关于你有哪些服务,任何信息都不会发送到任何地方;应用读取的内容见隐私政策。完全磁盘访问权限使它能够读取描述这些服务的系统配置。
关于Background Services的常见问题
第三方的一般没问题:最坏的情况是,其应用的某项功能(例如自动更新或同步)会停止,直到你再次启用该服务。正因如此,macOS 自带的服务默认是隐藏的。
Daemon 以系统身份运行,更改它们需要管理员密码。Background Services 列出它们是为了让你能看到它们,但不会要求你输入该密码。
不是。它的文件仍保留在原处,Enable 可以将其恢复。如需把应用连同它的 launch agent 和辅助程序一起移除,请使用 Uninstaller。
Startup Items 关注的是你登录时启动哪些项目,以及你的 Mac 启动要花多长时间。Background Services 显示的是 launchd 所知道的一切,包括 daemon 和 Homebrew 服务,以及此刻正在运行的内容。