Mac系统用户会话、睡眠模式及启动修改全解析
1. 用户会话管理
在足够多的系统进程启动后,macOS 便开始管理用户会话的进程。用户会话主要分为三个阶段:
- loginwindow :负责呈现登录屏幕并验证用户登录。此阶段成功完成后,将初始化用户环境,使用户应用程序能够运行。
- launchd :与 loginwindow 进程协同工作,初始化用户环境并启动用户进程或应用程序。
- 用户环境 :用户登录后,其进程和应用程序所在的“空间”,由 loginwindow 和 launchd 进程维护。
1.1 登录窗口阶段
当系统启动足够的进程以显示登录窗口时,launchd 进程会在 /System/Library/CoreServices/loginwindow.app 启动 loginwindow。loginwindow 作为后台进程和图形界面应用程序运行,它协调登录屏幕,并与 opendirectoryd 进程一起验证用户身份。验证通过后,loginwindow 与 launchd 进程共同初始化图形用户界面(GUI)环境,并在后台持续运行以维护用户会话。
登录窗口的部分设置存储在 /Library/Preferences/com.apple.loginwindow.plist 文件中,你可以在“用户与群组”偏好设置中配置这些设置。当没有用户登录时,loginwindow 进程由 root 用户拥有;用户登录验证成功后,该进程的所有权将从 root 用户转移到成功验证的用户,随后在 launchd 进程的帮助下设置 GUI 环境。
1.2 launchd 阶段
用户验证成功后,loginwindow 和 launchd 进程共同初始化用户环境。若启用了快速用户切换,launchd 进程会启动额外的进程来初始化和维护每个用户的环境。这两个进程通过以下操作设置图形界面环境:
- 从 opendirectoryd 检索用户账户信息并应用账户设置。
- 根据用户偏好配置鼠标、键盘和系统声音。
- 加载用户的计算环境,包括偏好设置、环境变量、设备和文件权限以及钥匙串访问。
- 打开 Finder、SystemUIServer(负责菜单栏右侧的状态图标等用户界面元素)和 Dock(还负责 Launchpad 和 Mission Control)。
- 自动打开用户的登录项。
- 默认情况下,自动恢复上次注销前打开的应用程序。
只要用户登录到 macOS,启动代理(launch agents)就可以随时启动。大多数启动代理在用户环境初始化期间启动,但也可以在之后或定期启动。macOS 提供的启动代理位于 /System/Library/LaunchAgents ,第三方启动代理应位于 /Library/LaunchAgents 或 ~/Library/LaunchAgents 。loginwindow 进程在 launchd 进程的帮助下,在用户环境初始化结束时启动用户登录项,你可以在“用户与群组”偏好设置中配置用户登录项列表。
1.3 用户环境维护
只要用户登录到会话,loginwindow 进程就会持续运行。launchd 进程启动用户进程和应用程序,而用户的 loginwindow 进程则监控和维护用户会话。loginwindow 进程通过以下方式监控用户会话:
- 管理注销、重启和关机程序。
- 管理“强制退出应用程序”窗口,包括监控当前活动的应用程序并响应用户强制退出应用程序的请求。
在用户登录会话期间,launchd 进程会重启应保持打开状态的用户应用程序,如 Finder 或 Dock。如果用户的 loginwindow 进程意外结束,用户的应用程序和进程将立即退出且不保存更改,此时 launchd 进程会重新启动 loginwindow 进程,就像 Mac 刚刚启动一样。
2. 睡眠模式、注销和关机
Mac 电脑的睡眠功能不会退出打开的进程,而注销、重启或关机时,macOS 会尝试退出打开的进程。你可以通过苹果菜单手动发出睡眠、重启、关机或注销命令,也可以快速按住电源按钮让 Mac 进入睡眠状态;若按住电源按钮数秒以上,则会强制 Mac 关机,但不建议经常这样做,以免造成数据丢失。
其他进程和应用程序也可以发起睡眠、注销或关机命令,例如安装程序、App Store 应用程序和软件更新在需要时会请求重启。你可以配置 Mac 自动执行与启动、睡眠、唤醒和关机相关的某些命令:
- 对于 Mac mini 电脑,在“节能器”偏好设置中,使用“显示器关闭时间”滑块和“显示器关闭时防止电脑自动睡眠”选项;对于基于 Intel 的 Mac mini 电脑,还可以配置“可能时让硬盘进入睡眠状态”选项。
- 在“节能器”偏好设置中,点击“计划”按钮设置启动或唤醒计划。
- 在“节能器”偏好设置中,点击“计划”按钮,选中菜单旁边的复选框,然后选择“睡眠”“重启”或“关机”来设置相应的计划。
- 在“安全性与隐私”偏好设置的“通用”面板中,选择“睡眠或屏幕保护程序开始后需要输入密码”,然后从菜单中选择时间。
- 在“安全性与隐私”偏好设置中,点击“高级”,选择“闲置 _ 分钟后注销”,然后输入分钟数。
你可以通过 Apple Remote Desktop 或移动设备管理(MDM)解决方案远程管理这些设置。Mac 的睡眠功能会暂停进程,而不是退出活动的进程或应用程序,这可以降低功耗。当你从睡眠模式唤醒 Mac 时,内核会从暂停处恢复进程和应用程序。
2.1 其他睡眠模式
与 macOS Big Sur 兼容的 Mac 电脑支持低功耗或零功耗模式:
- 安全睡眠(Safe Sleep) :部分 Mac 笔记本电脑支持此模式。当电池完全耗尽或 Mac 长时间闲置时,Mac 会进入安全睡眠状态,此时系统内存的内容(包括应用程序和文档的状态)会保存到内部存储设备,然后 Mac 关机。要重启处于安全睡眠模式的 Mac,必须按下电源按钮;如果是 Mac 笔记本且电池电量低,需先连接交流适配器。重启时,启动程序会从系统卷重新加载保存的内存映像,而不是进行正常的启动过程。启动程序可能会通过显示以下内容来表明 Mac 正在从安全睡眠模式重启:
- 睡眠启动时 Mac 屏幕的浅灰色版本。
- 主显示屏底部的分段进度指示器。
重新加载系统内存需要一些时间,然后内核会恢复进程和应用程序。如果启用了 FileVault,Mac 会先显示 FileVault 身份验证解锁屏幕,然后开始安全睡眠唤醒过程。
- 待机模式(Standby Mode) :基于 Intel 且使用闪存存储的 Mac 电脑在睡眠且完全闲置超过三小时后会进入此模式。完全闲置意味着 macOS 检测到零网络或外围设备活动。进入待机模式时,系统内存的内容会保存到内部存储设备,然后 Mac 会切断某些硬件系统(如 RAM 和 USB 总线)的电源。基于 Intel 的 Mac 笔记本电脑必须使用电池供电且断开所有外部连接才能进入此模式;基于 Intel 的 Mac 台式电脑必须没有挂载外部媒体(如 USB 或 Thunderbolt 存储设备或 SD 卡)。与安全睡眠模式不同,处于待机模式的 Mac 可以通过与键盘、触控板或鼠标交互来唤醒,唤醒时屏幕底部可能会显示一个小的白色分段进度条,但较新的 Mac 唤醒速度通常很快,你可能注意不到。
- Power Nap :仅适用于基于 Intel 且使用闪存存储的 Mac 电脑,可让 Mac 在睡眠时保持更新。macOS Big Sur 与 Apple 芯片集成了先进的电源管理功能,因此配备 Apple 芯片的 Mac 电脑不需要 Power Nap。当基于 Intel 的 Mac 进入睡眠状态时,Power Nap 会定期激活以更新信息,更新的信息取决于 Mac 是使用电池供电还是连接电源适配器。Power Nap 设置位于“节能器”偏好设置(适用于基于 Intel 的 Mac 台式电脑)或“电池”偏好设置(适用于基于 Intel 的 Mac 笔记本电脑)中,你可以选择启用或禁用该功能。
不同类型的 Mac 电脑 Power Nap 的默认设置不同:
| Mac 类型 | 默认设置 |
| — | — |
| 基于 Intel 且使用闪存存储(不包括 Fusion Drive)的 Mac 台式电脑 | 开启 |
| 连接电源适配器的基于 Intel 的 Mac 笔记本电脑 | 开启 |
| 使用电池且未连接电源适配器的基于 Intel 的 Mac 笔记本电脑 | 关闭 |
如果你的 Mac 支持 Power Nap,在睡眠期间可能会发生以下活动:
- 使用电池供电时 :邮件接收新消息、联系人与其他设备保持同步、日历接收新邀请和更新、提醒事项与其他设备保持同步、笔记与其他设备保持同步、iCloud 文档与其他设备保持同步、照片流与其他设备保持同步、Find My 更新 Mac 的位置、VPN On Demand 继续工作、MDM 解决方案可以远程锁定和擦除 Mac。
- 连接电源插座时 :除了上述活动外,还会下载软件更新、在后台下载 App Store 项目(包括软件更新)、Time Machine 进行备份、Spotlight 进行索引、用户指南和帮助内容更新、无线基站可以使用 Wake on Wireless 唤醒 Mac。
部分 Mac 电脑需要固件更新才能支持 Power Nap,在 Power Nap 期间,Mac 不会播放系统声音。基于 Intel 的 Mac 电脑在电池耗尽前会一直使用 Power Nap,连接交流电源后会恢复该功能。为了在使用 Power Nap 时延长电池寿命,建议断开可能从 Mac 吸取电量的 USB 或 Thunderbolt 设备。当 Mac 未连接交流电源时,Power Nap 每个周期仅进行几分钟的通信和数据传输;连接交流电源时,通信和数据传输是连续的。
以下是 Power Nap 期间各项检查的时间间隔:
- 日历、联系人、Find My、iCloud 文档、邮件、笔记、照片流和提醒事项每小时检查一次,邮件和笔记必须在 Mac 睡眠前打开才能在 Power Nap 期间接收更新。
- Time Machine 备份每小时尝试一次,直到成功完成备份。
- 软件更新每天检查一次。
- App Store 下载每周检查一次。
2.2 注销
用户可以随时注销以结束用户会话,也可以通过注销来关机或重启 Mac。当前登录的用户选择注销时,用户的 loginwindow 进程在 launchd 进程的帮助下管理所有注销功能。用户授权注销后,loginwindow 进程会向所有应用程序发送“退出应用程序”的 Apple 事件。支持自动保存和恢复功能的应用程序会立即保存打开文档的更改并退出;不支持这些功能的应用程序会响应退出事件,但会询问用户是否保存更改或终止进程。
如果应用程序未能响应或退出,注销过程将停止,loginwindow 会显示一条消息解释 Mac 未注销的原因(因为某个应用程序未能退出)。如果用户的应用程序成功退出,loginwindow 进程会强制退出后台用户进程,然后关闭用户的图形界面会话,运行任何注销脚本,并将注销记录到主系统日志文件中。如果用户仅选择注销而不是关机或重启,用户的 loginwindow 进程会退出,launchd 进程会重新启动一个由 root 用户拥有的新 loginwindow 进程,然后显示登录屏幕。
2.3 关机和重启
当登录的用户选择关机或重启 Mac 时,用户的 loginwindow 进程在 launchd 进程的帮助下管理注销功能。首先,loginwindow 进程会注销当前用户;如果有其他用户通过快速用户切换登录,loginwindow 会要求管理员用户进行身份验证,并在获得授权后强制退出其他用户的进程和应用程序,这可能会导致用户数据丢失。
所有用户会话注销后,loginwindow 进程会通知内核向剩余的系统进程发出退出命令。像 loginwindow 这样的进程应该会迅速退出,但内核必须等待仍有响应的进程退出。如果系统进程在几秒后仍未响应,内核会强制退出它们。进程退出后,内核会停止 launchd 进程并关闭系统。如果用户选择重启 Mac,固件会重新开始 macOS 启动过程。
下面是用户会话管理和睡眠、注销、关机流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([系统启动]):::startend --> B(启动系统进程):::process
B --> C(启动用户会话进程):::process
C --> D(loginwindow 阶段):::process
D --> E(显示登录窗口):::process
E --> F{用户登录验证}:::decision
F -->|成功| G(launchd 阶段):::process
F -->|失败| E
G --> H(初始化用户环境):::process
H --> I(打开用户应用程序):::process
I --> J(用户使用系统):::process
J --> K{用户操作}:::decision
K -->|睡眠| L(进入睡眠模式):::process
K -->|注销| M(注销流程):::process
K -->|关机| N(关机流程):::process
K -->|重启| O(重启流程):::process
L --> P{是否支持特殊睡眠模式}:::decision
P -->|是| Q(进入相应睡眠模式):::process
P -->|否| R(普通睡眠模式):::process
M --> S(loginwindow 管理注销):::process
S --> T(应用程序退出):::process
T --> U(关闭图形界面会话):::process
U --> V(记录注销到日志):::process
V --> W(显示登录窗口):::process
N --> X(loginwindow 管理关机):::process
X --> Y(系统进程退出):::process
Y --> Z(内核停止 launchd):::process
Z --> AA([系统关机]):::startend
O --> AB(loginwindow 管理重启):::process
AB --> AC(系统进程退出):::process
AC --> AD(内核停止 launchd):::process
AD --> AE(固件重新启动系统):::process
AE --> A
以上就是 Mac 系统用户会话管理、睡眠模式、注销和关机的详细介绍,希望能帮助你更好地了解和使用 Mac 电脑。
3. 修改启动方式
你可以修改启动器选择和 macOS 的启动方式,利用这些替代启动和诊断模式来排查系统问题。不过,使用启动快捷键有一些注意事项:
- 如果你的基于 Intel 的 Mac 启用了固件密码保护,在用户输入 Mac 电脑固件密码之前,启动快捷键将被禁用。即使用户通过身份验证,也只有访问启动管理器或 macOS 恢复模式的快捷键可以使用。
- 当修改启动方式时,开启 FileVault 的 Mac 电脑仍需进行身份验证和解锁才能继续系统启动。
- 部分硬件不支持基于 Intel 的 Mac 电脑的启动快捷键,包括一些第三方键盘、通过特定 USB 集线器或键盘 - 视频 - 鼠标(KVM)切换器连接的键盘。虽然蓝牙无线键盘理论上支持启动快捷键,但可能会出现问题,例如附近有多个蓝牙键盘时。建议准备一个有线 USB 键盘和鼠标用于排查 Mac 台式电脑的问题。
- 对于基于 Intel 的 Mac 电脑,使用快捷键选择的启动卷不会保存在 NVRAM 中,因此该设置在系统重启后不会保留。
3.1 为搭载 Apple 芯片的 Mac 选择替代系统
对于搭载 Apple 芯片的 Mac,你可以一次性更改启动系统,也可以更改启动系统直到再次更改。
- 一次性更改启动磁盘 :
1. 关闭你的 Mac。
2. 按住电源按钮。
3. 当 Mac 显示启动选项窗口时,松开电源按钮(大约需要 10 秒)。
4. 选择你的启动磁盘(使用指针或左右箭头键)。
5. 点击“继续”或按回车键。
- 更改启动磁盘直到再次更改 :
1. 关闭你的 Mac。
2. 按住电源按钮。
3. 当 Mac 显示启动选项窗口时,松开电源按钮(大约需要 10 秒)。
4. 选择你的启动磁盘(使用指针或左右箭头键)。
5. 按住 Option 键。
6. 点击“始终使用”或按回车键。
3.2 为基于 Intel 的 Mac 选择替代系统
基于 Intel 的 Mac 电脑可以使用键盘快捷键选择其他系统,具体如下:
| 快捷键 | 功能 |
| — | — |
| Option | 启动到启动管理器,可选择包含有效系统的卷进行启动,包括内部卷、光盘卷、一些外部卷,以及没有 T2 芯片的基于 Intel 的 Mac 电脑的 NetBoot 映像。 |
| Option - Command - R 或 Option - Shift - Command - R | 强制 Mac 从互联网恢复操作系统(Internet recoveryOS)启动,该系统会联系 Apple 下载恢复操作系统。 |
| Command - R | 启动到本地 macOS 恢复模式,如果本地没有可用的 macOS 恢复模式,则从互联网恢复操作系统启动。 |
| D | 启动到 Apple 诊断程序,如果本地资源不可用,Mac 会通过互联网连接到 Apple 服务器启动 Apple 诊断程序。 |
| Option - D | 强制通过互联网连接到 Apple 服务器启动 Apple 诊断程序。 |
3.3 使用 Apple 诊断程序
你可以使用 Apple 诊断程序(以前称为 Apple 硬件测试)检查 Mac 的硬件问题。启动 Apple 诊断程序的方式因 Mac 类型而异:
- 搭载 Apple 芯片的 Mac :
1. 如果 Mac 未关闭,请先关闭它。
2. 在 Mac 启动时按住电源按钮(大约需要 10 秒)。
3. 当看到启动选项窗口时,松开电源按钮。
4. 按住键盘上的 Command - D 键。
5. 持续按住 Command - D 键,直到 Mac 重新启动并打开 Apple 诊断程序。
- 基于 Intel 的 Mac 电脑 :
1. 如果 Mac 未关闭,请先关闭它。
2. 打开 Mac,然后立即按住键盘上的 D 键。
3. 当看到进度条或被要求选择语言时,松开 D 键。选择语言并点击“确定”后,阅读信息,然后点击“我同意”。
等待 Apple 诊断程序运行,Mac 会显示进度条。如果诊断程序发现问题,会返回一个或多个参考代码;否则,会显示“未发现问题”。对于搭载 Apple 芯片的 Mac,你可以点击“开始使用”链接,在 Apple 支持文章 HT203747 中查找参考代码;对于基于 Intel 的 Mac,点击“开始使用”链接可获得更多选项。此时,你可以采取以下操作:
- 如果显示“再次运行测试”,点击它(或按 Command - R)。
- 点击“重新启动”(或按 R),然后点击“重新启动”。
- 点击“关机”(或按 S),然后点击“关机”。
3.4 使用安全模式
安全模式(有时称为安全启动)是一种启动 Mac 的方式,它会执行某些检查并阻止一些软件自动加载或打开。在安全模式下启动 Mac 会执行以下操作:
- 验证启动磁盘并在需要时尝试修复目录问题。
- 仅加载必需的系统扩展。
- 阻止登录项自动打开。
- 禁用用户安装的字体。
- 删除字体缓存、内核缓存和其他系统缓存文件。
启动 Mac 进入安全模式的方法因 Mac 类型而异:
- 搭载 Apple 芯片的 Mac :
1. 关闭你的 Mac。
2. 按住电源按钮。
3. 当 Mac 显示启动选项窗口时,松开电源按钮(大约需要 10 秒)。
4. 选择你的启动磁盘(使用指针或左右箭头键)。
5. 按住 Shift 键。
6. 点击“以安全模式继续”或按回车键。
7. 松开 Shift 键。
- 基于 Intel 的 Mac :
1. 打开或重启 Mac,然后立即按住 Shift 键。
2. 当 Mac 显示 Apple 标志和进度条或登录窗口时,松开 Shift 键。
处于安全模式的 Mac 会在登录屏幕的右上角以亮红色文本显示“安全启动”字样。对于基于 Intel 的 Mac,如果开启了 FileVault,第一个登录窗口不会显示“安全启动”字样,成功验证身份并解锁启动磁盘后,macOS 会以安全模式启动,此时登录窗口会显示“安全启动”字样。登录后,直到屏幕锁定或注销,菜单中才会显示“安全启动”。你也可以在登录后打开“系统信息”来验证是否处于安全模式,“系统信息”的“软件”部分会将启动模式列为“安全”而非“正常”。
3.5 基于 Intel 的 Mac 的详细模式和单用户模式
基于 Intel 的 Mac 电脑还有两种修改 macOS 默认启动的快捷键:
- Command - V :以详细模式启动 macOS,系统不会隐藏启动进度,基于 Intel 的 Mac 会显示黑色背景和白色文本,展示启动过程的详细信息。
- Command - S :以单用户模式启动 macOS,系统仅启动核心内核和操作系统功能。使用单用户模式需要熟悉命令行界面。如果你的 Mac 配备了 T2 芯片且安全启动设置为“完全安全”或“中等安全”,在启动时按住 Command - S 键将进入详细模式而非单用户模式。
如果你使用的是搭载 Apple 芯片的 Mac 或配备 T2 芯片的基于 Intel 的 Mac,可以从恢复操作系统启动,然后选择“实用工具”>“终端”,而不是使用单用户模式。
下面是修改启动方式的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([启动修改需求]):::startend --> B{Mac 芯片类型}:::decision
B -->|Apple 芯片| C(选择替代系统或诊断模式):::process
B -->|Intel 芯片| D(使用快捷键选择系统或诊断模式):::process
C --> E{一次性更改还是长期更改}:::decision
E -->|一次性| F(按步骤一次性更改启动磁盘):::process
E -->|长期| G(按步骤长期更改启动磁盘):::process
D --> H{选择快捷键}:::decision
H -->|Option| I(进入启动管理器选择启动卷):::process
H -->|Option - Command - R 等| J(启动到互联网恢复模式):::process
H -->|Command - R| K(启动到本地或互联网恢复模式):::process
H -->|D| L(启动 Apple 诊断程序):::process
H -->|Option - D| M(通过互联网启动 Apple 诊断程序):::process
H -->|Command - V| N(详细模式启动):::process
H -->|Command - S| O{是否有 T2 芯片及安全设置}:::decision
O -->|是| N
O -->|否| P(单用户模式启动):::process
F --> Q(启动系统):::process
G --> Q
I --> Q
J --> Q
K --> Q
L --> R(运行诊断程序):::process
M --> R
R --> S{是否有问题}:::decision
S -->|是| T(获取参考代码):::process
S -->|否| U(显示无问题):::process
T --> V(采取相应措施):::process
U --> V
N --> W(显示详细启动信息):::process
P --> X(单用户模式操作):::process
W --> Q
X --> Q
Q --> Y([完成启动]):::startend
综上所述,Mac 系统在用户会话管理、睡眠模式、注销关机以及启动方式修改等方面都有丰富的功能和多样的操作方法。了解这些内容,能帮助你更好地管理和使用 Mac 电脑,在遇到问题时也能更从容地进行排查和解决。希望本文能为你在使用 Mac 过程中提供有效的指导和帮助。
超级会员免费看
140

被折叠的 条评论
为什么被折叠?



