Mac OS X supporta l'ibernazione?


40

Su Windows, puoi ibernare il tuo computer, in modo che si avvii molto più velocemente consumando zero energia mentre "iberna".

Vedo un'opzione per Sleep sul mio Mac mini ma non in letargo. Il Mac supporta l'ibernazione?

Sono su Leopard.

Risposte:


34

OS X ha solo un'opzione di "sospensione". Non puoi cambiarne il nome, ma per cambiare il suo comportamento, uso una vecchia versione di SmartSleep su un Mac mini (anche se in modalità "sospensione e ibernazione" tipo MacBook). Funziona per un mini, anche se il sito Web fa riferimento solo a MacBooks.

(SmartSleep era ancora gratuito quando l'ho scritto nel 2009.)

Occasionalmente mi lamento del fatto che l'hardware non sia stato rimosso correttamente (ma OS X non mi dice mai quale hardware, e i miei dischi USB di Time Machine sembrano a posto: un giorno dovrei sbirciare nei log e presumo che ciò sia correlato a OS X, non a SmartSleep).

Ho rapidamente testato "ibernazione" di SmartSleep su quel mini (Intel; in esecuzione 10.5), e sembra funzionare anche. Effettuando questi test, ho notato che dopo che il display diventa nero la spia di accensione inizia a pulsare (come per indicare il sonno anziché il letargo) per alcuni secondi. Forse sta ancora scrivendo RAM su disco allora. (Fino ad ora, ho sempre pensato che sul mio MacBook le pulsazioni indicassero che tutto era stato fatto. Ma ora penso che, indipendentemente dalla modalità di sospensione che si sta usando, probabilmente non si dovrebbe scollegare l'alimentazione troppo presto). Dopo un po 'si spegne completamente.

Nel 2006, Macworld spiega come ottenere lo stesso risultato senza quel riquadro delle preferenze di SmartSleep. Per verificare l'impostazione corrente:

pmset -g | grep hibernatemode

Secondo il vecchio articolo di Macworld vale quanto segue, ma assicurati di leggere la risposta di Lauri che suggerisce che al giorno d'oggi dovrebbero essere usati solo 0, 3 e 25 :

  • 0 - Modalità sleep vecchio stile, con RAM attivata durante il sonno, disattivazione del sonno sicuro e riattivazione superveloce.
  • 1 - Modalità di ibernazione, con i contenuti della RAM scritti su disco, il sistema si spegne completamente durante la modalità di "sospensione" e si riattiva più lentamente, a causa della lettura del contenuto della RAM dal disco rigido.
  • 3 - La modalità predefinita sulle macchine introdotta dall'autunno 2005. La RAM viene accesa durante la sospensione, ma anche i contenuti della RAM vengono scritti sul disco prima della sospensione. In caso di perdita totale di energia, il sistema entra automaticamente in modalità di ibernazione.
  • 5 - È uguale alla modalità 1, ma è per coloro che usano la memoria virtuale sicura (in Preferenze di Sistema »Sicurezza).
  • 7 - È uguale alla modalità 3, ma è per coloro che usano la memoria virtuale sicura.

E gli stessi numeri possono essere utilizzati per modificare l'impostazione della modalità di sospensione:

sudo pmset -a hibernatemodeode 1

11

Ho scritto uno script che ti permetterà di entrare immediatamente in letargo (senza modificare le impostazioni in modo permanente). Lo trovo abbastanza utile, poiché mi piacciono le impostazioni predefinite, ma voglio entrare forzatamente in letargo quando sei in viaggio. Forse anche qualcun altro lo troverà utile ;-)

#!/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

Aggiunta alla barra dei menu

Se si desidera richiamare questo script dalla barra dei menu ("systray"), vorrei:

  1. Metti questo script in una posizione adatta (come /usr/local/sbin/).
  2. Crea un AppleScript che invoca semplicemente questo script. Chiamalo "ibernazione"
  3. Aggiungi i tuoi script apple come icona nella barra dei menu

Ora puoi attivare lo script facendo clic sulla barra dei menu-> AppleScript-> Sospendi


1
per favore, crea una versione systray :)
DataGreed

Crea una versione systray.
Qed

Ciao, grazie per i commenti. Sfortunatamente, il nuovo MacBook Pro che ho ricevuto nel 2013 ha prestazioni di standby molto migliori rispetto al mio Mac precedente e mantiene la durata della batteria molto migliore. Quindi purtroppo c'è poco insensibile per me andare avanti e imparare Cocoa per fare più una versione systray. Rimuoverò quella frase ora.
Oligofren,

Questo è molto interessante, come funziona? Non shutdown -s nowha effetto immediato?
SilverWolf - Ripristina Monica

1
@leetbacoon ha aggiunto le istruzioni per aggiungerlo alla barra dei menu. Non possiedo un Mac da un paio d'anni, quindi non posso incollare alcun screenshot ...
Oligofren,

9

La pagina man di pmset consiglia anche di usare 25invece di 1.

0000 1000 (bit 3) incoraggia il cercapersone dinamico a sfogliare le pagine inattive prima dell'ibernazione, per un footprint di memoria ridotto.

0001 0000 (bit 4) incoraggia il pager dinamico a sfogliare in modo più aggressivo prima dell'ibernazione, per un ingombro di memoria inferiore.

Non è consigliabile modificare le impostazioni di ibernazione. Eventuali modifiche apportate non sono supportate. Se si sceglie di farlo comunque, si consiglia di utilizzare una di queste tre impostazioni. Per il tuo bene e il mio, ti preghiamo di non usare nient'altro che 0, 3 o 25.

[...]

hibernatemode = 25 (binario 0001 1001) può essere impostato solo tramite pmset. Il sistema memorizzerà una copia della memoria nella memoria permanente (il disco) e rimuoverà l'alimentazione della memoria. Il sistema verrà ripristinato dall'immagine del disco. Se si desidera "ibernazione": dormi più lenti, riattacchi più lenti e durata della batteria migliore, è necessario utilizzare questa impostazione.

Alcuni laptop ora entrano in modalità di sospensione ( modalità standby ) dopo circa un'ora di normale sospensione se:

  • Power Nap non è abilitato (quindi non per impostazione predefinita)
  • Il computer è alimentato a batteria
  • Il computer non è collegato a dispositivi USB o schermi esterni e non è associato a dispositivi Bluetooth

Computer portatili, Mac mini e iMac utilizzano circa 0,2-0,4 W in modalità di sospensione o ibernazione e 0,8-1,4 W in modalità sospensione. L'ibernazione (e l'ibernazione + modalità sospensione che i laptop utilizzano per impostazione predefinita) potrebbero anche ridurre la durata delle unità .


6

E per OS X Lion funziona meglio per l'ibernazione

sudo pmset -a modalità di ibernazione 25

di

sudo pmset -a modalità di ibernazione 1

poiché la modalità di ibernazione 1 può causare arresti anomali per qualche motivo.


Cosa significa esattamente 25?
Qed

25 è binario per 0001 1001, il che significa che i bit 4, 3 e 0 sono impostati (i tre 1: s). Questi tre bit raccontano tutti cose diverse al tuo computer. Il bit 0 (0000 0001) indica al computer di attivare l'ibernazione (il che significa salvare la memoria su disco prima di spegnersi). Il bit 3 (0000 1000) dice al tuo computer di ripulire la memoria della vecchia spazzatura prima di salvarla su disco (per fare in modo che debba salvare meno cose sul disco). Il bit 4 (0001 0000) indica al computer di essere più aggressivo durante la pulizia della memoria (consentendogli di salvare ancora meno cose sul disco).
Willem,

5

Per le risposte che si basano sulla modifica del 'hibernatemode' tramite pmset, è utile notare che l'opzione 'force' su pmset rende transitorie le modifiche. L'impostazione non verrà ricordata quando il sistema si riattiva dal letargo. Per esempio:

pmset -a hibernatemode 25 force

Cambierà la modalità di ibernazione per rappresentare un ibernazione tradizionale (cioè lo stato del sistema scritto sul disco e l'alimentazione rimossa) ma solo fino alla successiva accensione del sistema o la lettura delle impostazioni dal disco ( pmset touch).

L'uso dell'opzione force evita la necessità di salvare e ripristinare le impostazioni correnti dell'ibernatemode.


Ottimo consiglio! Puoi modificare la mia risposta se ti preoccupi troppo :)
oligofren,

3

Sì. si chiama sonno sicuro. Il modo più semplice per ottenerlo è utilizzare il widget di sonno profondo .


2
Odio i widget con passione. C'è qualcosa di non widgetoso?
AngryHacker,

1
Per i possessori di laptop il modo più semplice è chiudere il coperchio. Il menu Apple nell'angolo in alto a sinistra ha anche l'opzione `` sleep '' (almeno sulla mia Tiger).
Tadeusz A. Kadłubowski,

3

L'ibernazione verrà inoltre attivata automaticamente se la batteria del laptop si scarica completamente.


2
Un Mac mini non ha batteria ...
Arjan,

2

Ho letto che "Safe Sleep" è attivo per impostazione predefinita su tutti i Mac Intel e su alcune macchine PowerPC modello recente (penso che gli Intel mini abbiano questo supporto, ma quelli PPC probabilmente non lo fanno - senza hack non supportati).

Ma "Safe Sleep" di per sé non è esattamente lo stesso di "letargo". È una combinazione di salvataggio della RAM su disco ma anche di sospensione normale. Ciò consente una rapida veglia e preserva anche lo stato del sistema se l'alimentazione si interrompe completamente mentre la macchina è inattiva.

Puoi sapere se un sistema utilizza la modalità di sospensione sicura (dopo almeno una sospensione) controllando la presenza di un file / var / vm / sleepimage delle stesse dimensioni della RAM installata. Inoltre, quando la modalità di sospensione sicura è attiva, ci sarà un ritardo più lungo tra il clic sulla voce di menu Sospensione (o il pulsante o la pressione di Comando-Opzione-Espulsione) prima che la spia di stato della macchina inizi il suo normale ciclo di dissolvenza in salita / discesa.

L'ultimo bit della soluzione è di spegnere completamente la macchina dopo aver salvato la RAM in sleepimage. Sembra che sia possibile configurarlo usando il programma da riga di comando pmset per impostare l' ibernatemode . Puoi provare qualcosa come Deep Sleep per un modo automatizzato di modificare questa configurazione.


Il sonno sicuro non era attivo per impostazione predefinita sul mio Intel Mac mini. Ho usato SmartSleep per abilitarlo, ma in effetti pmsetposso ottenere lo stesso.
Arjan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.