文章目录
NAME
shell
pmset -- manipulate power management settings
概要
shell
pmset [-a | -b | -c | -u] [setting value] [...]
pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes]
pmset -g [option]
pmset schedule [cancel | cancelall] type date+time [owner]
pmset repeat cancel
pmset repeat type weekdays time
pmset relative [wake | poweron] seconds
pmset [touch | sleepnow | displaysleepnow | boot]s
描述
pmset
用于管理电源管理设置,包括空闲休眠时间、管理访问唤醒、断电后自动重启等功能。
需要注意的是,进程可能通过使用 I/O Kit 电源断言动态覆盖这些电源管理设置。当进程覆盖任何系统电源设置时,pmset
会在 -g
和 -g assertions
中列出这些进程及其电源断言。详情请参阅 caffeinate(8)
。
SETTING
pmset 可以修改以下定义的任何电源管理设置值。在命令行调用 pmset 时,您可以指定一个或多个设置与值的组合。通过 -a
、-b
、-c
、-u
标志来确定这些设置是应用于电池 (-b
)、充电器 (交流电源) (-c
)、不间断电源 (-u
) 还是所有情况 (-a
)。
对于 sleep、disksleep 和 displaysleep 设置,使用参数值 0 表示永不进入空闲状态。
修改任何设置时,必须以 root 权限运行 pmset
。
SETTINGS
displaysleep
- 显示器睡眠计时器;在 10.4 版本中取代了 'dim' 参数(单位为分钟,设为 0 表示禁用)disksleep
- 磁盘停转计时器;在 10.4 版本中取代了 'spindown' 参数(单位为分钟,设为 0 表示禁用)sleep
- 系统睡眠计时器(单位为分钟,设为 0 表示禁用)womp
- 通过以太网魔术包唤醒(取值 = 0/1)。等同于系统设置中的"允许网络访问唤醒"。ring
- 通过调制解调器振铃唤醒(取值 = 0/1)powernap
- 在支持的机器上启用/禁用 Power Nap 功能(取值 = 0/1)proximitywake
- 在支持的系统中,此选项控制当使用相同 iCloud ID 的设备靠近时从睡眠状态唤醒系统(取值 = 0/1)autorestart
- 断电后自动重启(取值 = 0/1)lidwake
- 当笔记本上盖(或翻盖)打开时唤醒机器(取值 = 0/1)acwake
- 当电源(交流电/电池)切换时唤醒机器(取值 = 0/1)lessbright
- 切换至该电源时略微降低显示器亮度(取值 = 0/1)halfdim
- 显示器睡眠时会在全亮和完全关闭之间使用中间半亮度状态(取值 = 0/1)sms
- 使用 Sudden Motion Sensor 在 G 力突变时停泊磁盘磁头(取值 = 0/1)hibernatemode
- 更改休眠模式。请谨慎使用。(取值 = 整数)hibernatefile
- 更改休眠镜像文件位置。镜像只能位于根卷上。请谨慎使用。(取值 = 路径)ttyskeepawake
- 当任何 tty(例如远程登录会话)处于"活动"状态时阻止系统空闲睡眠。仅当 tty 的空闲时间超过系统睡眠计时器时才被视为"非活动"。(取值 = 0/1)networkoversleep
- 此设置影响 OS X 网络在系统睡眠期间如何呈现共享网络服务。并非所有平台都使用此设置;更改其值不受支持。destroyfvkeyonstandby
- 进入待机模式时销毁 File Vault 密钥。默认情况下即使系统进入待机模式也会保留 File Vault 密钥。如果密钥被销毁,用户从待机模式恢复时需要输入密码。(取值:1 - 销毁,0 - 保留)
GETTING
-g
(不带参数)将显示当前使用的设置。-g live
显示当前使用的设置。-g custom
显示所有电源的自定义设置。-g cap
显示机器支持的电源管理功能。-g sched
显示计划中的启动/唤醒和关机/睡眠事件。-g ups
显示UPS紧急阈值。-g ps / batt
显示电池和UPS的状态。-g pslog
显示电源(电池和UPS)状态的持续日志。-g rawlog
显示直接从电池读取的电池状态持续日志。-g therm
显示影响CPU速度的温度条件。并非所有平台都可用。-g thermlog
显示影响CPU速度的温度通知日志。并非所有平台都可用。-g assertions
显示电源断言的摘要。断言可能会阻止系统睡眠或显示器睡眠。适用于10.6及更高版本。-g assertionslog
显示断言创建和释放的日志。适用于10.6及更高版本。-g sysload
显示"系统负载建议"------从IOGetSystemLoadAdvisory API获取的系统活动摘要。适用于10.6及更高版本。-g sysloadlog
显示系统负载建议的实时变化日志。适用于10.6及更高版本。-g ac / adapter
显示连接的交流电源适配器的详细信息。仅支持MacBook和MacBook Pro。-g log
显示睡眠、唤醒和其他电源管理事件的历史记录。此日志用于管理和调试目的。-g uuid
显示当前活动的睡眠/唤醒UUID;在OS X中用于关联一个睡眠周期内的睡眠/唤醒活动。-g uuidlog
显示当前活动的睡眠/唤醒UUID,并在系统设置新UUID时打印。-g history
是一个调试工具。当启用启动参数io=0x3000000时,打印系统睡眠/唤醒UUID的时间线。-g historydetailed
打印睡眠/唤醒的驱动程序级时间。传递一个UUID作为参数。-g powerstate [类名]
打印I/O Kit驱动程序的当前电源状态。调用者可以提供一个或多个I/O Kit类名(以空格分隔)作为参数。如果未提供类名,则打印所有驱动程序的电源状态。-g powerstatelog [-i interval] [类名]
定期打印某些驱动程序的电源状态驻留时间。调用者可以提供一个或多个I/O Kit类名(以空格分隔)。如果未提供类名,则记录IOPower平面的根注册表条目。
调用者可以使用-i <polling interval>
指定轮询间隔(以秒为单位);否则默认为5秒。-g stats
打印自启动以来系统经历的睡眠和唤醒次数。-g systemstate
打印系统的当前电源状态和可用功能。-g everything
打印GETTING标题下每个参数的输出。这对于快速收集pmset提供的所有输出非常有用。适用于10.8及更高版本。
安全睡眠参数
hibernatemode
支持 0、3 或 25 三个值。是否写入休眠映像还取决于 standby
和 autopoweroff
的值。
例如,在支持待机的台式机上,系统会在指定的 standbydelay
时间后写入休眠映像。若要完全禁用休眠映像,请确保将 hibernatemode
、standby
和 autopoweroff
全部设为 0。
在台式机上,hibernatemode
默认为 0。系统不会将内存内容备份到持久存储中。系统必须从内存内容中唤醒;断电时系统会丢失上下文。这也就是传统意义上的普通睡眠模式。
在便携设备上,hibernatemode
默认为 3。系统会将内存副本存储到持久存储(磁盘)中,并在睡眠期间保持内存供电。除非断电迫使系统从休眠映像恢复,否则系统将从内存中唤醒。
hibernatemode = 25
只能通过 pmset 设置。系统会将内存副本存储到持久存储(磁盘)中,并切断内存电源。系统将从磁盘映像恢复。如果你需要"休眠"功能------即较慢的睡眠/唤醒速度,但能获得更好的电池续航------应该使用此设置。
请注意,hibernatefile
只能指向根卷上的文件。
待机参数
standby
参数使内核电源管理在机器睡眠达到指定时间后自动进入休眠状态。这能在睡眠期间节省电力。对于支持的硬件,此设置默认启用。如果当前机器支持该功能,在 pmset -g
命令输出中可以看到 standby
设置项。
standbydelayhigh
和 standbydelaylow
用于指定进入待机模式前,将休眠映像写入磁盘并关闭内存电源的延迟时间(以秒为单位)。当剩余电池电量高于 highstandbythreshold
时使用 standbydelayhigh
,低于该阈值时则使用 standbydelaylow
。
highstandbythreshold
的默认值为 50%。
在支持的平台上,autopoweroff
默认启用以符合欧盟《能源相关产品指令》第6号方案的要求。系统在睡眠 <autopoweroffdelay>
秒后,会写入休眠映像并进入更低功耗的芯片组睡眠状态。
从该状态唤醒所需时间比常规睡眠唤醒更长。
autopoweroffdelay
指定进入自动断电模式前的延迟时间(以秒为单位)。
UPS 专用参数
UPS 专用参数仅在 -u
选项后有效。UPS 设置还具有启用/禁用状态。使用 -1
参数代替百分比或分钟数可关闭任何设置。如果指定了多个关机条件,系统将在低电量情况下首个触发的条件发生时执行关机。
haltlevel
- 当 UPS 电池放电时,触发紧急关机的电池电量阈值(以百分比为单位)
haltafter
- 当 UPS 电池放电时,在持续运行此时间后触发紧急关机(以分钟为单位,0 表示禁用)
haltremain
- 当 UPS 电池放电时,在预估剩余电量时间达到此值时触发紧急关机(以分钟为单位,0 表示禁用)
注意:这些设置均不支持带有内置电池的系统(例如笔记本电脑)。UPS 紧急关机设置仅适用于台式机和服务器。
计划事件参数
pmset 允许你安排系统睡眠、关机、唤醒和/或开机。
"schedule" 用于设置一次性电源事件;
"repeat" 用于设置每日/每周的开机和关机事件。
请注意,你只能安排一对重复事件------一个 "开机" 事件和一个 "关机" 事件。
对于睡眠循环应用,pmset 可以安排一个 "相对" 唤醒或开机事件,该事件将在系统睡眠/关机结束后的若干秒内触发,但此事件无法取消且本质上不精确。
类型 - 可以是 sleep、wake、poweron、shutdown、wakeorpoweron 之一
日期/时间 - "MM/dd/yy HH:mm:ss"(24 小时制;必须加引号)
时间 - HH:mm:ss
工作日 - MTWRFSU 的子集("M" 和 "MTWRF" 是有效字符串)
所有者 - 描述安排此一次性电源事件的人员或程序的字符串(可选)
电源参数说明
使用 -g
参数并搭配 batt
或 ps
参数时,将显示所有连接电源的状态信息。
使用 -g
参数并搭配 pslog
或 rawlog
参数通常用于调试场景,例如排查老化电池导致的问题。
其他参数
boot
- 通知内核系统启动已完成(通常由LoginWindow执行此操作)。可能对Darwin用户有用。
touch
- 让电源管理(PM)重新从磁盘读取现有设置。
noidle
- 通过创建PM断言来阻止空闲睡眠(运行期间生效;按ctrl-c取消)。此参数已弃用,推荐使用caffeinate(8)。请改用caffeinate(8)。
sleepnow
- 立即让系统进入睡眠状态。
restoredefaults
- 将电源管理设置恢复为默认值。
displaysleepnow
- 立即让显示器进入睡眠状态。
resetdisplayambientparams
- 重置特定Apple显示器的环境光参数。
dim
- 在10.4版本中已弃用,改用 displaysleep
'。dim
仍可继续使用。
spindown
- 在10.4版本中已弃用,改用 disksleep
。spindown
仍可继续使用。
示例
此命令将电池供电时的显示器休眠时间设置为5分钟,同时保持电池供电和其他电源模式下的其他设置不变。
shell
pmset -b displaysleep 5
将显示睡眠设置为10,磁盘睡眠设置为10,系统睡眠设置为30,并根据电源类型(交流电源、电池和UPS)为所有电源启用WakeOnMagicPacket功能
shell
pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1
对于配备并支持UPS的系统,此指令会在UPS电池电量降至40%以下时,触发系统执行紧急关机。
shell
pmset -u haltlevel 40
对于配备并支持UPS的系统,此指令会在以下任一条件满足时立即执行紧急关机:UPS电池电量降至25%以下,或UPS预估剩余运行时间不足30分钟。
shell
pmset -u haltlevel 25 haltremain 30
对于连接并支持UPS的系统,该指令会让系统在依靠UPS电池供电运行2分钟后执行紧急关机。
shell
pmset -u haltafter 2
将系统设置为在2016年7月4日晚上8点自动从睡眠状态唤醒。
shell
pmset schedule wake "07/04/16 20:00:00"
安排每日重复关机,从周二到周六,每天上午11点执行。
shell
pmset repeat shutdown TWRFS 11:00:00
每周二中午12点安排重复唤醒或开机事件,每晚8点安排重复休眠事件。
shell
pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00
取消所有已计划的系统休眠、关机、唤醒和开机事件。
shell
pmset repeat cancel
显示系统当前使用的电源管理设置。
shell
pmset -g
打印当前时刻电池/电源状态的快照信息。
shell
pmset -g batt
如果您的系统在电池剩余容量为20-50%时突然进入睡眠状态,请在终端窗口中持续运行此命令。当问题重现且后续接通电源唤醒电脑后,您将能检测到电量骤降现象(例如从30%直接跳至0%),这表明电池可能已老化。
shell
pmset -g pslog
另请参阅
caffeinate
(8)
文件
通过 pmset 所做的所有更改都会保存在一个 持久性偏好设置文件中(针对整个系统而非单个用户),该文件位于 /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist
计划性的开机/关机事件则单独存储在 /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist
中
pmset 修改的文件与系统设置(System Settings)修改的是同一个文件。
2025-06-13(五)