详解Mac睡眠模式设置
详解Mac睡眠模式设置
原文链接:http://www.insanelymac.com/forum/index.php?showtopic=281945
需要说明的是,首先这篇文章是针对已经能够成功睡眠并唤醒的用户
如果你的睡眠目前还存有各式各样的问题,那么这篇文章可能并不是你现阶段最需要的
当然在下面,我也会提及到文中的一点或许会使你本不能睡眠的机器能够成功睡眠
检查现用设置
打开终端后,首先要做的便是确定你的Mac OS目前正在使用的睡眠模式,以防你需要设置回去
你可以通过Unix指令 pmset 来观察和更改睡眠模式
查看当前睡眠模式设置,在终端输入以下指令:
- pmset -g | grep hibernatemode
复制代码
你应该在终端中看到类似如下的结果:
- $ pmset -g | grep hibernatemodehibernatemode 3
复制代码
好的,现在我们就能知道你的机器正处于模式3
多亏Dashboard中一个十分方便的小插件 Deep Sleep 的说明书
我们能够正确的分别出各个睡眠模式的特点:
0-老式睡眠模式
睡眠期间内存加电,禁用safe sleep(安全睡眠),超快速唤醒
1-休眠模式
内存中的数据将写入到磁盘上,系统在所谓的“睡眠”时将完全关闭
因为需要读取先前保存在硬盘中的内存数据,所以唤醒较慢
3-睡眠模式(2005年秋季之后机器默认采用的)
睡眠过程中,内存保持通电状态,同时内存数据在进入睡眠模式之前同样要写入到硬盘
万一没有外接电源并且电池也完全没电了的话,系统将自动进入休眠模式
5-和模式1一样
但这是为了那些使用安全虚拟内存的用户 System Preferences -> Security(系统设置-安全)
7-和模式3一样
但同样是为了那些使用安全虚拟内存的用户
既然你已经知道自己目前所处的模式,那么做个记录吧
你也可以用下面的指令,一步到位:
- sudo pmset -g | grep hibernatemode > ~/Desktop/current_mode.txt
复制代码
这个指令会将pmset命令的结果除了最后的模式值其他的全部删除掉
然后将结果导出到桌面上名为current_mode.txt的文本文件
以防将来需要,保存好这个文件
注意:
在这里我是故意如此谨慎的
事实上,除非你曾经捣鼓过这个设置,不然的话你的Mac不是在模式0就是3或者7
如果你的是模式0的话,这个小提示对你就无所谓了,因为你的Mac仍然使用的是老式睡眠
保存一个存有3或7数字值的文本文件确实有些过了
但是至少将来你不会在纠结于初始的模式到底是3还是7了
改变睡眠模式设置
要改变睡眠模式,你又需要使用pmset指令了,还需要加上变量以及相对应的你想要改变的值
所以如果你想要回到老式睡眠模式(从上面可以知道是模式0),输入下列指令:
- sudo pmset -a hibernatemode 0
复制代码
按下回车,将会需要输入你的密码
输完之后回车,你的睡眠模式就更改完成了
如果你想使用原来的设置,用保存在current_mode.txt里面的值替代上述指令的“0”
当然,这也意味着你也可以设置你的机器直接进入休眠模式,方法就是最后的数值从0改为1
我发现了一个更简单的方法,那就是使用上文提及到的Deep Sleep插件
这个插件将会返回它在休眠模式之前的值,这也就是说
你可以使用这个插件进入休眠同时关闭盖子
(笔记本啦@_@)也能进入正常的睡眠模式
需要注意的是,上面的改动并不需要重启生效
释放一些磁盘空间
如果你的机器之前的设置是3或者7并且你已经设置了使用老式睡眠模式,你可以继续下一步:
释放在你改变睡眠模式之前睡眠时用于保存系统内存备份的那部分磁盘空间
在终端中输入如下两条指令,按下回车输入密码即可
- cd /var/vm
- sudo rm sleepimage
复制代码
如果你回到了新式睡眠模式
这个睡眠镜像文件(sleepimage)将会在你执行sudo pmset指令的时候自动创建
一执行指令就会创建,而不是第一次将机器进入睡眠模式的时候
总结
注明:以下"我"均指原文作者
个人来说,我认为新式睡眠更好,我也将我的机器设置为这个模式
但如果你更喜欢老式睡眠,你也已经知道如何设置了
是的,这确实需要在终端之路上进行一趟旅程
但是一旦当你决定踏上了旅程,你就会发现其实它也没有想象中的那么困难
p.H:
在读原文作者这篇帖子之前,我曾经详细查阅过pmset指令
所以对原文作者的内容,算是已经有一定了解了
下面给大家几点直观的使用感觉,比上述文字要直白许多
模式0,相比与其他的模式最大的区别就是进入睡眠极快
可以说是1秒钟之内,我的笔记本感觉就很直观了
我的系统默认的是模式3,点击睡眠之后,能够看到硬盘灯狂闪
原因上文有叙述,简单说就是把内存数据写入硬盘
所以要过个七八秒之后,才能看到电源灯呼吸闪烁
相较之下,模式0瞬间就看到电源灯呼吸闪烁,进入睡眠状态
而关于文章中提及的释放磁盘空间
我的内存是8G的,所以我特意进行了测试
执行前后,系统可用空间增加了8G多一点
实际上应该就是8G整,不过涉及到进制的问题,会有一些出入
插句题外话,windows同样有类似的操作方法,能够释放系统盘的空间(大小等于你的内存大小)
另外,我发现我的睡眠模式默认设置的是模式3
如果改成模式5的话,睡眠之后,短时间内没问题
但是可能过一段时间,系统会自动断电
完全断电的那种,开机就是那种正常的开机,没有任何唤醒
因为上文提到牵涉到虚拟内存,而我是关闭了Mac的虚拟内存
所以可能黑果对模式5和7的支持并不是太好,或者是因为我关闭了虚拟内存的缘故
除此之外,有的机器可能采用系统默认的模式3,5,7或1无法睡眠
但是改用了模式0之后,能够正常睡眠
当然这并不是通用的方法,但有可能
它会让你原本不能睡眠的机器能够很好地支持睡眠
综上,个人还是比较喜欢模式0
详解Mac睡眠模式设置的更多相关文章
- 图解SynchronousQueue原理详解-非公平模式
SynchronousQueue原理详解-非公平模式 开篇 说明:本文分析采用的是jdk1.8 约定:下面内容中Ref-xxx代表的是引用地址,引用对应的节点 前面已经讲解了公平模式的内容,今天来讲解 ...
- javascript设计模式详解之命令模式
每种设计模式的出现都是为了弥补语言在某方面的不足,解决特定环境下的问题.思想是相通的.只不过不同的设计语言有其特定的实现.对javascript这种动态语言来说,弱类型的特性,与生俱来的多态性,导致某 ...
- javascript设计模式详解之策略模式
接上篇命令模式来继续看下js设计模式中另一种常用的模式,策略模式.策略模式也是js开发中常用的一种实例,不要被这么略显深邃的名字给迷惑了.接下来我们慢慢看一下. 一.基本概念与使用场景: 基本概念:定 ...
- IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...
- V4L2 API详解 <二> Camera详细设置【转】
转自:http://blog.sina.com.cn/s/blog_602f87700101bf36.html 作者: Sam (甄峰) sam_code@hotmail.com Camera的 ...
- java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)
本篇我们将讨论以下知识点: 1.线程同步问题的产生 什么是线程同步问题,我们先来看一段卖票系统的代码,然后再分析这个问题: package com.zejian.test; /** * @author ...
- MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享
mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...
- LVS管理工具ipvsadm详解与LVS-NAT模式演示
ipvsadm命令是工作在用户空间的LVS集群管理工具,原理是调用ipvs的API,在内核中生成ipvs的规则,主要用来管理集群服务和集群服务中的RealServer,使用方法类似iptables命令 ...
- Oracle-归档日志详解(运行模式、分类)
一.Oracle日志分类 分三大类: Alert log files--警报日志,Trace files--跟踪日志(用户和进程)和 redo log 重做日志(记录数据库的更改 ...
随机推荐
- C#、Unity网络通信中基于字节码的自定义协议解码,C#版ByteBuffer
http://www.oschina.net/code/snippet_42170_37516 C#.Unity基于字节的网络通信中字节码解析类,类似java中的ByteBuffer,不过这个实现是参 ...
- 51nod1276(xjb)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1276 题意:中文题诶- 思路:xjb 通过画图可以发现对于当前 ...
- ios代码大全
http://blog.csdn.net/kepoon/article/details/7763106
- (十三)SpringBoot 发送E-mail
一:添加mail依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...
- assembly x86(nasm)串比较
预留字符串口令,输入口令串与预留密码串比较.若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输 ...
- ACM之路
从10月我刚接触到acm竞赛,到现在2017年2.20接近4个月的时间,我才刷到200道题.在刷题的过程中,我曾遇到困难,我也从一次性就a过,但是有时候会想到放弃.不过既然已经踏进来一只脚,还不如就好 ...
- VC 中TEXT、_T、L的区别
http://i.cnblogs.com/EditPosts.aspx?opt=1 对于从VC++6.0转到VS2005编译环境中的程序员.往往会碰到字符集之间的转换. VC6.0采用的是ANSI字符 ...
- hashlib 实现加密
实现代码 import hashlib # hashlib是一个python用于给数据加密的包,内有很多加密方式,包括md5,sha1, sha224, sha256, sha384, sha512等 ...
- css实现发光的input输入框
效果图截图: 案例代码示下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- 根据select中选定option触发不同事件
做公司项目,要实现一个小需求,根据下拉框选定的数据,绑定不同的事件.我的思路是获取select下面的option值,然后给它们定义不同的点击事件,但是在使用中option不能添加类,同时没有click ...