系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

pmset

查看和修改 Mac 的睡眠、显示器休眠与定时唤醒策略。

补充说明

pmset 读写系统电源管理配置:-g 显示当前值,-g custom 分别显示电池和电源适配器,-a 同时改两者,-b 只改电池,-c 只改电源。时间单位是分钟,0 表示永不。配置写入系统级偏好,重启后仍生效,所以改之前先记下原值。

边界:sleep 0 只阻止空闲睡眠,合盖仍会睡;合盖不睡通常要外接电源和显示器(clamshell),或用 sudo pmset -a disablesleep 1,后者会让机器持续发热,不建议长期使用。Apple Silicon 与 Intel 在 hibernatemode、磁盘休眠等项目上行为不同,不要照搬旧教程。

常用示例

# 1. 查看当前生效值,改任何参数前先留一份基线
% pmset -g
% pmset -g custom

# 2. 所有电源模式下:显示器 10 分钟休眠,系统 30 分钟睡眠
% sudo pmset -a displaysleep 10 sleep 30

# 3. 只改电池模式,插电时保持原策略
% sudo pmset -b sleep 5

# 4. 找出是谁在阻止睡眠(caffeinate、播放器、下载任务)
% pmset -g assertions | grep -iE 'caffeinate|PreventUserIdleSystemSleep'

# 5. 工作日早上 7:30 自动唤醒或开机;先确认已有计划
% sudo pmset repeat wakeorpoweron MTWRF 07:30:00
% pmset -g sched

# 6. 查看电池百分比和剩余时间
% pmset -g batt

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. pmset -a、-b、-c 分别作用于哪些电源模式?改之前为什么要先 pmset -g custom?
  2. 已经设置 sleep 30,为什么 Mac 还是不睡?用什么命令确认原因?
  3. sleep 0 和 disablesleep 1 都能“不睡”,风险和语义差在哪里?
答案
  1. -a 同时改电池和电源适配器,-b 只改电池,-c 只改电源;先看 custom 才能记录原值并避免误改另一套配置。
  2. 可能有进程持有电源断言,例如 caffeinate、播放器或外接显示器;用 pmset -g assertions 查看。
  3. sleep 0 只取消空闲睡眠,合盖仍睡;disablesleep 1 连合盖都不睡,发热和耗电风险高,只适合受控短时使用。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令