Mac OS 电源管理及 pmset 命令(转)

本文详细介绍Mac OS中的电源管理工具pmset的功能与用法,包括如何通过命令行调整显示器睡眠、硬盘降速等设置,以及如何调度系统睡眠和唤醒事件。
最近在用mac时发现一个问题,晚上正在上传或者下载的程序在电脑自动省电时会被关闭,第二天发现文件只上传了一半。想mac一定会有一个命令行的电源管理工具,在网上找到了下边文章,拿来分享。方便作服务器开发的朋友可以自已使用程序控制mac系统的电源使用。
转自:
http://www.crazy-code.tech/index.php/2017/02/25/mac-os-power-managment-and-pmset/

pmset 都能干什么

这个工具可以设置和列出电量管理的设置。一部分功能在“节能偏好”面板中通过图形界面的形式提供出来。然而,pmset 预留的一些更加灵活的选项并不适用于图形界面。

它可以根据使用情况设置不同的电量管理设定。当机器正在充电、使用电池、UPS 或者三者全都有的情况下,可以应用不同的设定。下面是相关的标记:

  • -c 调节设定用于连接充电器的时候
  • -b 调节设定用于使用电池的时候
  • -u 调节设定用于使用 UPS 的时候
  • -a 调节设定用于全部情景
  • 具体的内容会在下面的 pmset 命令手册中详细描述。

    pmset 命令手册

    正如前面讲的一样,这个命令在 mac 系统里是自带的,在终端直接输入 man pmset 可以直接翻出手册来看,如果你比较懒,可以下面我翻的这个精简版的。附上原文地址:PMSET,这个命令是基于 Mac OS X version 10.9,不过这种命令应该不会有太多变化。

    命令名称

    pmset,操纵电源管理设置。熟悉 unix 或者 linux 的同学都知道,命令的起名都是很有讲究的,比如这个 pmset 看起来很怪,其实就是 power managment settings 的缩写。

    概述

    pmset [-a | -b | -c | -u] [setting value] [...]
    pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes]
    pmset -g [option]
    pmset schedule [cancel] type date+time [owner]
    pmset repeat cancel
    pmset repeat type weekdays time
    pmset relative wake seconds
    pmset [touch | sleepnow | displaysleepnow | lock | boot]
    

    描述

    pmset 管理电源设置,像空闲睡眠时间,当管理员访问时唤醒,断电自动重启等等。

    注意,这个过程可以通过使用 IO 电源断言动态的覆盖。无论何时程序覆盖任何系统电源设置, pmset 将列出那些程序以及他们的电源断言

    使用情景

    pmset 可以修改任意电源管理设置以下定义的值。你可以在命令行中使用 pmset 指定至少一个情景-值对。-a-b-c-u 标记设置是否应用到电池(-b),充电(-c),UPS(-u) 或者全部(-a)。

    使用一个 0 的分钟参数来设置空闲时间,绝不睡眠,硬盘睡眠和显示器睡眠。

    pmset 必须由 root 用户运行来修改任何的设置。

    设置信息

    • displaysleep – 显示器睡眠计时器;替换 10.4 版本中的 dim 参数(值为分钟,或者设置 0 来禁用)。
    • disksleep – 硬盘降速计时器;替换 10.4 版本中的 spindown 参数(值为分钟,或者设置 0 来禁用)。
    • sleep – 系统睡眠计时器(值为分钟,或者设置 0 来禁用)。
    • womp – 通过以太网唤醒(值为 1 或者 0)
    • ring – 通过调制解调器环境(值为 1 或者 0)
    • autorestart – 当电量损耗时自动重启(值为 1 或者 0)
    • lidwake – 当笔记本打开盖子的时候唤醒机器(值为 1 或者 0)
    • acwake – 当电源(AC 或者电池)改变的时候唤醒机器(值为 1 或者 0)
    • lessbright – 当切换电源时,略微调低显示器亮度(值为 1 或者 0)
    • halfdim – 显示器睡眠将使用在最大亮度和关闭显示器之间的中间亮度(值为 1 或者 0)
    • sms – 当重力突然改变时,使用瞬时运动传感器来停止磁盘头(值为 1 或者 0)
    • hibernatemode – 改变休眠模式。请小心使用(值为整数)
    • hibernatefile – 改变休眠镜像文件位置。镜像应该只被定为到根卷中。请小心使用(值为路径)
    • ttyskeepawake – 当任何 tty(如:远程登录会话) 在活动状态时,阻止系统空闲睡眠。tty 只能是非活动 当它的空闲时间超过系统睡眠计时器(值为 1 或者 0)
    • networkoversleep – 这个设置影响 OS X 在系统睡眠时如何联网。这个设置不被全平台使用,不支持修改这个值。
    • destroyfvkeyonstandby – 当变为待机模式时销毁文件库密钥。默认地,当系统待机时密钥被保留。如果关键文件被销毁,将导致当用户退出待机模式时输入密码(值为 1 – 销毁 ,0 – 保留)
    • autopoweroff – 系统将写入休眠镜像并且进入到低电量芯片组睡眠。从这个状态唤醒所花的时间要比普通休眠唤醒的时间要长。如果有外部设备连接,系统不会自动切断电源,如果系统使用电池供电,或者系统被绑定在网络并且通过网络访问被唤醒功能开启。
    • autopoweroffdelay – 进入自动切断电源模式的延迟(值为表示分钟的整数)

    显示信息

    • -g(不带参数) 显示当前正在使用的设置
    • -g live 显示当前正在使用的设置
    • -g custom 显示为所有电源的自定义设置
    • -g cap 显示机器支持哪些电力管理功能
    • -g sched 显示计划启动、唤醒或关闭、睡眠事件
    • -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 显示“系统负载顾问”——。适用于 10.6 及更新版本
    • -g ac/adapter 显示关于交流电源适配器的详情。只有 MacBoook 和 MacBook Pro 支持。
    • -g log 显示睡眠,唤醒及其他电源管理时间的历史。这个日志只提供给管理员和调试目的
    • -g uuid 显示当前活跃的睡眠、唤醒的 UUID。
    • -g uuidlog 显示当前活跃的睡眠、唤醒的 UUID,并且打印一个新的被系统设置的 UUID
    • -g history 一个调试工具。当使用启动参数 io=0x3000000 被启用时,打印系统睡眠唤醒的 UUID 的时间线。
    • -g powerstate 打印当前为 IO Kit 驱动电源状态。调用者应该至少提供一个 IO Kit 类名来作为参数。如果没有类名被听过,它将打印全部驱动的电源状态。
    • -g powerstatelog 
    • -g stats 打印自系统启动以来睡眠和唤醒系统的计数。
    • -g systemstate 打印当前系统的电量状态和可用能力。
    • -g everything 打印每个参数。这是一个有用的快速收集所有 pmset 提供的输出。适用于 10.8。

    安全睡眠参数

    hibernatemode 有一个位字段参数来定义安全睡眠能力。通过 0 来禁用安全睡眠,强制计算进入普通睡眠。

    • ____ ___1 (bit 0) 开始休眠,注意 OS X 写内存状态到休眠镜像在睡眠的时候。当唤醒时,OS X 将从休眠镜像中恢复。位 0 设置引起 OS X 写内存状态并且立刻休眠在睡眠时间。
    • ____ __1_ (bit 1) 
    • ____ 1___ (bit 3)
    • ___1 ____ (bit 4)

    我们不推荐修改休眠设置。你做的任何改变都不被支持。如果你一定要这么做,我们推荐使用以下三种设置其中之一。为了保证你的利益,请不要使用除了了 0,3,25 以外的设置。

    • hibernatemode = 0 台式机默认支持。系统将不会备份内存到持久化存储。系统必须从内存内容中唤醒;当断电时系统将会失去上下文。这是传统的普通睡眠方式。
    • hibernatemode = 3 便携式计算机默认支持。系统将存储一份内存的备份到持久化存储(磁盘)中,并且在睡眠过程中持续给内存供电。系统将从内存中被唤醒,除非断电才强制从磁盘镜像会恢复。
    • hibernatemode = 25 只能通过 pmset 才可以设置。系统将存储一份内存的备份到持久化存储(磁盘)中,并且将会给内存断电。系统将从磁盘镜像中恢复。如果你希望“休眠”——慢一点但是有益电池寿命,你应该使用这个设置。

    待机参数

    standby 使得机器在睡眠了一段指定的时间间隔后,核心电源管理会自动休眠机器。通过睡眠来节电。这个设置默认在被支持的硬件环境下是默认开启的。如果这个功能被机器支持,standby 设置在 pmset -g 命令中是可见的。

    • standby 只有 hibernate 被设置为 3 或者 25 时才工作。
    • standbydelay 指定一个以秒为单位的延迟,在写入休眠镜像到磁盘并且内存断电之前。

    UPS 详细参数

    调度事件参数

    pmset 允许你调度系统睡眠,关机,唤醒以及电源开启。“schedule”是设置一次电源事件的,“repeats”用来设置每日或者每周的电源开启及关闭事件。注意,你只能定义一对重复事件的调度——“power on” 事件或者“power off”事件。对于睡眠周期的应用,pmset 可以调度一个

    电源参数

    • -g 后面跟随一个 batt 或者 ps 参数将显示全部电源的状态。
    • -g 后面跟随 pslog 或者 rawlog 参数通常被用来调试,比如隔离一个老旧电池的问题。

    其他参数

    • boot 告诉内核系统启动完成。对于 Darwin 用户来说可能很有用。
    • force 告诉 PM 立刻激活这些设置。不要写入到磁盘,并且设置可以简单地被重写。在 PM 配置插件没有运行的情况下很有用。
    • touch PM 从磁盘中重新读取已存在的设置。

    用例

    这个命令设置了在使用电池电量的情景下,显示器睡眠倒计时为 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 电池时在两分钟后关闭系统。

    pmset -u haltafter 2

    系统计划于 2016 年 7 月 4 日 20:00 的时候自动从睡眠中唤醒。

    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 sleep MTWRFSU 20:00:00

    打印系统在使用的电量管理设定

    pmset -g

    打印此刻的电池或电源的状态快照。

    pmset -g batt

    如果你的系统在使用电池供电的使用还有 20-50% 剩余电量时突然睡眠,请在终端窗口中运行下面这个命令。当你看到问题和,你将能够检测到老化电池的突然不连续电量(比如突然从 30% 降到 0%)。

    pmset -g pslog

    总结

    基于上面学习和整理出的内容来看,发生在我的 Mac 上的情况还是很正常的情况,所以也不打算修改 pmset 中的电源参数了,虽然没有怎么折腾,但是确实学到不少有意思的知识,这就算没白忙活。(完)

    参考文章

    1. pmset apple 在线文档
    2. Mac 帮助
    3. pmset wiki 页面
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值