Mac OS X是否支持休眠?


40

在Windows上,您可以使计算机进入休眠状态,以便在“休眠”时消耗零能耗的情况下启动速度更快。

我在Mac mini上看到了“睡眠”选项,但没有休眠。Mac是否支持休眠方式?

我在豹子上。

Answers:


34

OS X仅具有一个“睡眠”选项。你不能改变它的名字,而是要改变自己的行为,我用的是旧版本的的SmartSleep上的Mac mini(虽然在MacBook般的“睡眠与休眠”模式)。它仅适用于mini,尽管该网站仅指MacBook。

(当我在2009年撰写此书时,SmartSleep仍然免费。)

我偶尔会抱怨硬件没有被正确删除(但是OS X从来没有告诉我什么硬件,而且我的Time Machine USB磁盘似乎还不错-我应该有一天偷看日志,我认为这与OS X有关,而不是至SmartSleep)。

我已经在该mini(Intel;运行10.5)上快速测试了SmartSleep的“仅休眠”,它似乎也可以正常工作。在进行这些测试时,我注意到在显示屏变黑之后,电源指示灯会开始闪烁几秒钟(就像表明睡眠而不是冬眠)。也许那时它还在向磁盘写入RAM。(直到现在,我一直认为MacBook上的脉动表明一切都已完成。但是现在我认为,无论使用哪种睡眠模式,都不应太早拔掉电源)。片刻之后,它会完全关闭电源。

在2006年,Macworld 解释了在没有SmartSleep首选项窗格的情况下如何实现相同的目的。要检查当前设置:

pmset -g | grep休眠模式

根据Macworld的旧文章,以下内容适用,但请务必阅读Lauri的答案,该答案表明,如今只能使用0、3和25代替

  • 0-旧式睡眠模式,睡眠时打开RAM,禁用安全睡眠,并具有超快唤醒功能。
  • 1-休眠模式,RAM内容写入磁盘,“休眠”时系统完全关闭,并且由于从硬盘驱动器中读取RAM内容,因此唤醒速度较慢。
  • 3-自2005年秋季以来引入的计算机上的默认模式。RAM在睡眠时打开电源,但RAM内容也将在睡眠前写入磁盘。万一总功率损耗,系统将自动进入休眠模式。
  • 5 —与模式1相同,但适用于使用安全虚拟内存的用户(在系统偏好设置»安全性中)。
  • 7 —与模式3相同,但适用于使用安全虚拟内存的用户。

并且相同的数字可用于更改睡眠模式设置:

须藤pmset -a hibernatemode 1

11

我编写了一个脚本,该脚本可让您立即进入休眠状态(而无需永久更改设置)。我觉得它非常有用,因为我喜欢默认设置,但是想在旅途中强行进入休眠状态。也许其他人也会发现它有用;-)

#!/bin/bash

# Utility to force your mac immediately into hibernation mode/suspend to disk,
# thus conserving battery considerably (at the cost of slower startup)
# @date 2012-02-10
# @author Carl-Erik Kopseng. Contact at oligofren.wordpress.com

# must be run as root by using sudo or to avoid entering the password, change the pmset
# executable settings by entering
# sudo chmod +s /usr/bin/pmset
# sudo chmod +s /sbin/shutdown

MODE_BACKUP=/tmp/hibernate_mode.bak
SUSPEND_TO_DISK=25 #see man pmset

display_settings() {
    echo "Current settings: " $(pmset -g | grep hibernatemode)
}

save_settings() {
    echo "saving settings"
    pmset -g | grep hibernatemode | awk '{print $2}' > $MODE_BACKUP
}

restore_settings() {
    echo "restoring settings"
    pmset -a hibernatemode $(cat $MODE_BACKUP)
}

set_only_disk_hibernate() {
    echo "changing settings to only suspend to disk (slow, but does not use battery)"
    pmset -a hibernatemode $SUSPEND_TO_DISK
}

hibernate() {
    echo "going into hibernation"
    shutdown -s now
}

save_settings
set_only_disk_hibernate && hibernate
restore_settings

添加到菜单栏

如果要从菜单栏(“ systray”)调用此脚本,我将:

  1. 将此脚本放在合适的位置(例如/usr/local/sbin/)。
  2. 创建一个简单地调用此脚本的AppleScript。称之为“休眠”
  3. 在菜单栏中将苹果脚本添加为图标

现在,您可以通过单击菜单栏-> AppleScripts->休眠来触发脚本


1
请制作一个系统托盘版本:)
DataGreed

请制作系统托盘版本。
2014年

嗨,谢谢你的评论。不幸的是,我在2013年购买的新款MacBook Pro的待机性能比以前的Mac更好,并且电池寿命更长。因此,不幸的是,对我来说,继续学习可可粉来制作系统托盘版本并没有太大的启发性。我现在将删除该句子。
oligofren 2014年

这很有趣,它如何工作?并shutdown -s now不会立即生效?
SilverWolf-恢复莫妮卡

1
@leetbacoon添加了将其添加到菜单栏的说明。我已经有两年没有Mac了,所以我无法粘贴任何屏幕截图……
oligofren

9

pmset手册页还建议使用25代替1

0000 1000(位3)鼓励动态寻呼机在休眠之前分页不活动的页,以减少内存占用。

0001 0000(位4)鼓励动态寻呼机在休眠之前更积极地进行寻呼,以减少内存占用。

我们不建议修改休眠设置。您所做的任何更改均不受支持。如果您仍然选择这样做,我们建议您使用这三种设置之一。为了您和我的利益,请不要使用0、3或25以外的任何符号。

[...]

只能通过pmset设置hibernatemode = 25(二进制0001 1001)。系统会将内存副本存储到永久性存储(磁盘)中,并切断内存电源。系统将从磁盘映像还原。如果要“休眠”-更慢的睡眠,更慢的唤醒和更长的电池寿命,则应使用此设置。

现在,某些笔记本电脑会在经过大约一个小时的正常睡眠后进入休眠状态(待机模式),如果:

  • Power Nap未启用(因此默认情况下未启用)
  • 电脑使用电池供电
  • 笔记本计算机未连接至USB设备或外部显示器,并且未与Bluetooth设备配对

笔记本电脑,Mac mini和iMac处于关闭或休眠状态时,大约使用0.2-0.4 W;在睡眠模式下,则使用0.8-1.4W。休眠(以及笔记本电脑默认使用的休眠+睡眠模式)也可能会缩短驱动器的使用寿命


6

对于OS X Lion,它更适合休眠

sudo pmset -a休眠模式25

须藤pmset -a休眠模式1

因为休眠模式1可能由于某些原因导致崩溃。


25代表什么?
2014年

25是0001 1001的二进制,这意味着设置了位4、3和0(三个1:s)。这三位告诉您计算机不同的事情。位0(0000 0001)告诉您的计算机激活休眠模式(这意味着在关机之前将内存保存到磁盘)。位3(0000 1000)告诉您的计算机在将旧的垃圾保存到磁盘之前要清理掉它们的内存(以使其必须在磁盘上节省更少的内容)。位4(0001 0000)告诉您的计算机在清除内存时要更具攻击性(允许将更少的内容保存到磁盘上)。
威廉2014年

5

对于依赖于通过pmset切换“休眠模式”的答案,请注意pmset上的“ force”选项使更改是暂时的,这很有用。当系统从休眠状态唤醒时,该设置将不会被记住。例如:

pmset -a hibernatemode 25 force

将更改休眠模式以表示传统的休眠模式(即,将系统状态写入磁盘并关闭电源),但仅在下一次系统启动电源从磁盘读取设置时(pmset touch)。

使用force选项可以避免保存和恢复当前的休眠模式设置。


大提示!如果您也打扰的话,您可以编辑我的答案:)
oligofren

3

对。这就是所谓的安全睡眠。最简单的方法是使用深度睡眠小部件


2
我满怀热情地讨厌小部件。有什么非小事吗?
AngryHacker

1
对于笔记本电脑用户来说,最简单的方法是合上盖子。左上角的Apple菜单还具有``,sleep''选项(至少在我的Tiger上)。
2009年

3

如果您的笔记本电脑电池电量完全耗尽,休眠状态也会自动触发。


2
Mac mini没有电池...
Arjan

2

我已经读到,所有Intel Mac和某些较新型号的PowerPC机器都默认启用“安全睡眠”功能(我认为Intel mini具备此支持,但PPC可能不支持-没有不受支持的黑客)。

但是,“安全睡眠”本身与“休眠”并不完全相同。这是将RAM保存到磁盘但又进行正常睡眠的一种组合。这样可以实现快速唤醒,并且如果机器在睡眠时碰巧完全断电,还可以保留系统状态。

您可以通过(至少经过一次睡眠后)检查文件/ var / vm / sleepimage来确定系统是否正在使用安全睡眠,该文件与已安装的RAM大小相同。同样,当“安全睡眠”处于活动状态时,在机器状态指示灯开始正常的淡入/淡出循环之前,单击“睡眠”菜单项(或按钮,或按住Command-Option-Eject)之间会有较长的延迟。

解决方案的最后一点是在节省RAM睡眠映像之后使机器完全关闭电源。似乎可以使用命令行程序pmset进行配置,以设置hibernatemode。您可以签出类似Deep Sleep之类的内容,以自动进行此配置更改。


默认情况下,我的Intel Mac mini上没有启用安全睡眠。我使用SmartSleep来启用它,但确实pmset可以实现相同的目的。
Arjan,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.