macOS 通過pmset
命令設置系統電源管理,其中hibernatemode
的值來調整系統睡眠方式。
以下操作和介紹均以 macOS Sierra 10.12 系統為範例,其他版本的 macOS 系統可能稍有不同。如果 Mac 電腦使用沒有問題,建議保持系統默認設置,勿隨意修改睡眠方式!
在系統偏好設置的「能源節約器」裏面提供了一部分電源管理設置,但是更加詳細的設置只能通過pmset
命令來完成。
以下內容翻譯自pmset
命令的幫助檔案(可以運行man pmset
查看)
macOS 安全睡眠說明
hibernatemode
可以設置的值有 0、3和25。 macOS 系統是否寫入睡眠檔案到硬碟也同時取決於standby
和autopoweroff
的值。若要完全禁止睡眠檔案,請確保hibernatemode
、standby
和autopoweroff
的值都要設置為 0。
hibernatemode = 0
是桌面電腦的默認設置。系統不會將記憶體備份到硬碟上。系統必須從記憶體中恢復;如果掉電,將丟失記憶體中的數據。這是一種老舊的睡眠設置。
hibernatemode = 3
是便攜式電腦的默認設置。系統將存儲一份記憶體的副本到硬碟上,記憶體將持續供電。系統將會從記憶體恢復,除非掉電,迫使系統從硬碟中的睡眠檔案恢復。
hibernatemode = 25
只能通過pmset
命令來設置。系統將存儲一份記憶體的副本到硬碟上,並將切斷記憶體的供電。系統將從硬碟中的睡眠檔案恢復。如果你想以較慢的速度睡眠、恢復,獲得更長的電池壽命,那麽你可以使用這種設置。
官方說明已經很清楚了,我再簡化一下,系統睡眠的時候:
很顯然hibernatemode = 3
這種設置對於 MacBook 來說是最好的設置狀態,也是默認的設置狀態,我們一般不需要進行修改。但是有些用戶偏向於更省電,那麽設置成 25 最好;有些用戶偏向於延長 SSD 壽命,那麽設置成 1 最好。
autopoweroff
和standby
的作用是到了autopoweroffdelay
或standbydelay
設置的時間後,就開始啟動安全睡眠模式(將記憶體中的數據寫入硬碟中的睡眠檔案,然後切斷記憶體的供電)。
具體設置步驟如下:
$ pmset -g #顯示當前電源狀態下的設置
$ pmset -g custom #顯示所有電源狀態下的設置
注意 MacBook 存在**插交流電(-c)和電池供電(-b)兩種不同的電源狀態,對於伺服器來說還有UPS供電(-u)**的電源狀態)
standbydelay 10800 #standby 啟動的時間。單位秒
standby 1 #處於睡眠狀態經過設定時間後,記憶體數據寫入硬碟,關閉記憶體供電。1開啟,0關閉
womp 1 #網路喚醒。1開啟,0關閉
halfdim 1 #顯示器亮度調低時間。單位分鐘
hibernatefile /var/vm/sleepimage #睡眠檔案位置
powernap 1 #PowerNAP 是否開啟。1開啟,0關閉
gpuswitch 2 #GPU 是否自動切換。1開啟,0關閉,2不支持
networkoversleep 0 #睡眠時提供共享網路服務
disksleep 10 #機械硬碟停轉時間。單位分鐘,0關閉
sleep 0 #系統睡眠的時間。單位分鐘,0關閉
autopoweroffdelay 28800 #autopoweroff 啟動的時間,單位為秒
hibernatemode 3 #睡眠方式設置
autopoweroff 1 #處於睡眠狀態經過設定時間後,記憶體寫入硬碟,關閉記憶體電源。1開啟,0關閉
ttyskeepawake 1 #遠程用戶活動時防止睡眠。1開啟,0關閉
displaysleep 10 #顯示器關閉時間。單位分鐘,0關閉
acwake 0 #電源狀態改變時喚醒。1開啟,0關閉
lidwake 1 #開蓋喚醒。1開啟,0關閉
$ sudo pmset -a(-c|-b|-U) parameter value
其中
-a
表示應用設置于所有電源狀態
$ sudo pmset -a hibernatemode 0
$ sudo pmset -a standby 0
$ sudo pmset -a autopoweroff 0
$ sudo rm /var/vm/sleepimage
$ sudo pmset -a hibernatemode 25