当前位置: 首页 > news >正文

pmset - 控制 macOS 系统电源、睡眠、唤醒与节能

文章目录

      • NAME
      • 概要
      • 描述
      • SETTING
      • SETTINGS
      • GETTING
      • 安全睡眠参数
      • 待机参数
      • UPS 专用参数
      • 计划事件参数
      • 电源参数说明
      • 其他参数
      • 示例
      • 另请参阅
      • 文件


NAME

pmset – manipulate power management settings

概要

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 cancelpmset repeat type weekdays timepmset relative [wake | poweron] secondspmset [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 三个值。是否写入休眠映像还取决于 standbyautopoweroff 的值。

例如,在支持待机的台式机上,系统会在指定的 standbydelay 时间后写入休眠映像。若要完全禁用休眠映像,请确保将 hibernatemodestandbyautopoweroff 全部设为 0。

在台式机上,hibernatemode 默认为 0。系统不会将内存内容备份到持久存储中。系统必须从内存内容中唤醒;断电时系统会丢失上下文。这也就是传统意义上的普通睡眠模式。

在便携设备上,hibernatemode 默认为 3。系统会将内存副本存储到持久存储(磁盘)中,并在睡眠期间保持内存供电。除非断电迫使系统从休眠映像恢复,否则系统将从内存中唤醒。

hibernatemode = 25 只能通过 pmset 设置。系统会将内存副本存储到持久存储(磁盘)中,并切断内存电源。系统将从磁盘映像恢复。如果你需要"休眠"功能——即较慢的睡眠/唤醒速度,但能获得更好的电池续航——应该使用此设置。

请注意,hibernatefile 只能指向根卷上的文件。


待机参数

standby 参数使内核电源管理在机器睡眠达到指定时间后自动进入休眠状态。这能在睡眠期间节省电力。对于支持的硬件,此设置默认启用。如果当前机器支持该功能,在 pmset -g 命令输出中可以看到 standby 设置项。

standbydelayhighstandbydelaylow 用于指定进入待机模式前,将休眠映像写入磁盘并关闭内存电源的延迟时间(以秒为单位)。当剩余电池电量高于 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 参数并搭配 battps 参数时,将显示所有连接电源的状态信息。

使用 -g 参数并搭配 pslograwlog 参数通常用于调试场景,例如排查老化电池导致的问题。


其他参数

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版本中已弃用,改用 disksleepspindown 仍可继续使用。


示例

此命令将电池供电时的显示器休眠时间设置为5分钟,同时保持电池供电和其他电源模式下的其他设置不变。

pmset -b displaysleep 5

将显示睡眠设置为10,磁盘睡眠设置为10,系统睡眠设置为30,并根据电源类型(交流电源、电池和UPS)为所有电源启用WakeOnMagicPacket功能

pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1

对于配备并支持UPS的系统,此指令会在UPS电池电量降至40%以下时,触发系统执行紧急关机。

pmset -u haltlevel 40

对于配备并支持UPS的系统,此指令会在以下任一条件满足时立即执行紧急关机:UPS电池电量降至25%以下,或UPS预估剩余运行时间不足30分钟。

pmset -u haltlevel 25 haltremain 30

对于连接并支持UPS的系统,该指令会让系统在依靠UPS电池供电运行2分钟后执行紧急关机。

pmset -u haltafter 2

将系统设置为在2016年7月4日晚上8点自动从睡眠状态唤醒。

pmset schedule wake "07/04/16 20:00:00"

安排每日重复关机,从周二到周六,每天上午11点执行。

pmset repeat shutdown TWRFS 11:00:00

每周二中午12点安排重复唤醒或开机事件,每晚8点安排重复休眠事件。

pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00

取消所有已计划的系统休眠、关机、唤醒和开机事件。

pmset repeat cancel

显示系统当前使用的电源管理设置。

pmset -g

打印当前时刻电池/电源状态的快照信息。

pmset -g batt

如果您的系统在电池剩余容量为20-50%时突然进入睡眠状态,请在终端窗口中持续运行此命令。当问题重现且后续接通电源唤醒电脑后,您将能检测到电量骤降现象(例如从30%直接跳至0%),这表明电池可能已老化。

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(五)

相关文章:

  • 隧道代理IP的使用与技术优势分析
  • 学习笔记:Redis入门
  • Trae国内版Builder模式VS Chat模式
  • 表格对比工具推荐,快速比对Excel文件
  • 开疆智能ModbusTCP转Devicenet网关连接西门子200Smart与费托斯阀岛案例
  • 数据库中的Schema是什么?不同数据库中Schema的含义
  • Charles 抓包工具使用教程
  • OpenLayers 图层叠加控制
  • 芯片测试之VIL/VIH(输入电平)Test全解析:从原理到实战
  • 服务器上安装配置vsftpd
  • Webpack:现代前端构建工具的核心解析
  • 深入理解 @JsonGetter:精准掌控前端返回数据格式!
  • 26考研 | 王道 | 计算机组成原理 | 七、输入输出系统
  • PHP设计模式实战:领域驱动设计与六边形架构
  • life long learning
  • 线上故障诊断黑魔法:基于/proc目录的无工具排查体系
  • 并发编程-ReentranLock
  • Git:现代开发的版本控制基石
  • 高效解决Java内存泄漏问题:方法论与实践指南
  • 《信号与系统》第 9 章 拉普拉斯变换
  • 网站建设工作总结6/巢湖seo推广
  • 长春网站建设开发维护/网络营销的收获与体会
  • 安全等级保护每个网站必须做吗/百度应用app
  • 做网站赚多少/抖音营销软件
  • 工业设计公司怎么收费/北京seo代理公司
  • 电子商务网站建设的四个步骤/微营销官网