¿Mac OS X admite la hibernación?

40

En Windows, puede hibernar su computadora, para que se inicie mucho más rápido mientras consume cero energía mientras "hiberna".

Veo una opción para dormir en mi Mac mini pero no hibernar. ¿Mac es compatible con la hibernación?

Estoy en leopardo.

AngryHacker
fuente

Respuestas:

34

OS X solo tiene una opción de "suspensión". No puede cambiar su nombre, pero para cambiar su comportamiento, utilizo una versión anterior de SmartSleep en una Mac mini (aunque en el modo "suspensión e hibernación" similar a MacBook). Funciona para un mini, aunque el sitio web solo se refiere a MacBooks.

(SmartSleep todavía era gratuito cuando escribí esto en 2009.)

De vez en cuando me quejo de que el hardware no se ha eliminado correctamente (pero OS X nunca me dice qué hardware, y mis discos USB de Time Machine parecen estar bien; un día debería echar un vistazo a los registros y supongo que esto está relacionado con OS X, no a SmartSleep).

Probé rápidamente el "solo hibernación" de SmartSleep en ese mini (Intel; ejecuta 10.5), y parece funcionar también. Al hacer estas pruebas, noté que después de que la pantalla se apaga, la luz de encendido comienza a parpadear (como para indicar el sueño en lugar de hibernar) durante unos segundos. Quizás todavía esté escribiendo RAM en el disco entonces. (Hasta ahora, siempre pensé que en mi MacBook el pulso indicaba que todo estaba hecho. Pero ahora creo que, cualquiera que sea el modo de suspensión que uno esté usando, probablemente no debería desconectar la alimentación demasiado pronto). Después de un corto tiempo, se apaga por completo.

En 2006, Macworld explica cómo lograr lo mismo sin ese panel de preferencias SmartSleep. Para verificar la configuración actual:

pmset -g | grep hibernatemode

Según el antiguo artículo de Macworld, se aplica lo siguiente, pero asegúrese de leer la respuesta de Lauri que sugiere que hoy en día solo se deben usar 0, 3 y 25 en su lugar :

  • 0 - Modo de suspensión de estilo antiguo, con RAM encendida mientras duerme, desactivación de suspensión segura y activación súper rápida.
  • 1 - Modo de hibernación, con el contenido de RAM escrito en el disco, el sistema se apaga totalmente mientras está "en reposo" y se reactiva más lentamente, debido a la lectura del contenido de RAM del disco duro.
  • 3 - El modo predeterminado en máquinas introducido desde aproximadamente el otoño de 2005. La RAM se enciende mientras se duerme, pero el contenido de la RAM también se escribe en el disco antes de dormir. En caso de pérdida total de energía, el sistema entra en modo de hibernación automáticamente.
  • 5 - Esto es lo mismo que el modo 1, pero es para aquellos que usan memoria virtual segura (en Preferencias del sistema »Seguridad).
  • 7 - Esto es lo mismo que el modo 3, pero es para aquellos que usan memoria virtual segura.

Y se pueden usar los mismos números para cambiar la configuración del modo de suspensión:

sudo pmset -a hibernatemode 1
Arjan
fuente
11

Escribí un script que te permitirá ingresar a la hibernación de inmediato (sin cambiar tu configuración de forma permanente). Lo encuentro bastante útil, ya que me gusta la configuración predeterminada, pero quiero ingresar a la hibernación por la fuerza cuando estoy de viaje. Tal vez alguien más lo encuentre útil también ;-)

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

Agregar a la barra de menú

Si desea invocar este script desde la barra de menú ("bandeja del sistema"), yo haría lo siguiente:

  1. Pon este script en una ubicación adecuada (como /usr/local/sbin/).
  2. Cree un AppleScript que simplemente invoque este script. Llámalo "Hibernate"
  3. Agregue sus scripts de apple como un icono en la barra de menú

Ahora puede activar el script haciendo clic en la Barra de menú-> AppleScripts-> Hibernate

oligofren
fuente
1
por favor, haga una versión de bandeja del sistema :)
DataGreed
Por favor, haga una versión de bandeja del sistema.
qed
Hola, gracias por los comentarios. Desafortunadamente, el MacBook Pro más nuevo que obtuve en 2013 tiene un rendimiento en espera mucho mejor que mi Mac anterior, y mantiene la duración de la batería mucho mejor. Por lo tanto, desafortunadamente, tengo poco insecto para seguir adelante y aprender Cocoa para hacer una versión de bandeja del sistema. Eliminaré esa oración ahora.
oligofren
Esto es muy interesante, ¿cómo funciona? No shutdown -s nowtiene efecto de inmediato?
SilverWolf - Restablece a Monica
1
@leetbacoon agregó instrucciones para agregar esto a la barra de menú. No he tenido una Mac en un par de años, así que no puedo pegar ninguna captura de pantalla ...
oligofren
9

La página de manual de pmset también recomienda usar en 25lugar de 1.

0000 1000 (bit 3) alienta al buscapersonas dinámico a pasar páginas inactivas antes de la hibernación, para una huella de memoria más pequeña.

0001 0000 (bit 4) alienta al localizador dinámico a desplazarse más agresivamente antes de la hibernación, para una huella de memoria más pequeña.

No recomendamos modificar la configuración de hibernación. Los cambios que realice no son compatibles. Si elige hacerlo de todos modos, le recomendamos utilizar uno de estos tres ajustes. Por tu bien y el mío, no uses nada más que 0, 3 o 25.

[...]

hibernatemode = 25 (binario 0001 1001) solo se puede configurar a través de pmset. El sistema almacenará una copia de la memoria en un almacenamiento persistente (el disco) y eliminará la energía de la memoria. El sistema se restaurará desde la imagen del disco. Si desea "hibernación": sueño más lento, vigilia más lenta y mejor duración de la batería, debe usar esta configuración.

Algunas computadoras portátiles ahora entran en hibernación ( modo de espera ) después de aproximadamente una hora de sueño normal si:

  • Power Nap no está habilitado (por lo que no está predeterminado)
  • La computadora funciona con batería
  • La computadora no está conectada a dispositivos USB o pantallas externas y no está emparejada con dispositivos Bluetooth

Las computadoras portátiles, Mac minis e iMacs usan aproximadamente 0.2-0.4 W cuando están apagadas o hibernando y 0.8-1.4 W en modo de suspensión. La hibernación (y el modo de hibernación + suspensión que las computadoras portátiles usan de manera predeterminada) también podría reducir la vida útil de las unidades .

Lri
fuente
6

Y para OS X Lion esto funciona mejor para la hibernación

sudo pmset -a hibernationmode 25

que

sudo pmset -a hibernationmode 1

como hibernationmode 1 puede causar bloqueos por alguna razón.

Willem
fuente
¿Qué significa exactamente 25?
qed
25 es binario para 0001 1001, lo que significa que los bits 4, 3 y 0 están establecidos (los tres 1: s). Esos tres bits le dicen a su computadora cosas diferentes. El bit 0 (0000 0001) le dice a su computadora que active la hibernación (lo que significa guardar memoria en el disco antes de apagarse). El Bit 3 (0000 1000) le dice a su computadora que limpie la memoria de la basura vieja antes de guardarla en el disco (para que tenga que guardar menos cosas en el disco). El bit 4 (0001 0000) le dice a su computadora que sea más agresiva mientras limpia la memoria (lo que le permite guardar incluso menos cosas en el disco).
Willem
5

Para las respuestas que dependen de girar el 'modo de hibernación' a través de pmset, es útil tener en cuenta que la opción 'forzar' en pmset hace que los cambios sean transitorios. La configuración no se recordará cuando el sistema se active después de la hibernación. Por ejemplo:

pmset -a hibernatemode 25 force

Cambiará el modo de hibernación para representar una hibernación tradicional (es decir, el estado del sistema escrito en el disco y la alimentación desconectada), pero solo hasta la próxima vez que el sistema se encienda o la configuración se lea desde el disco ( pmset touch).

El uso de la opción de fuerza evita la necesidad de guardar y restaurar la configuración actual del modo de hibernación.

usuario210274
fuente
Gran consejo! Puedes editar mi respuesta si te molestas también :)
oligofren
3

Sip. Se llama sueño seguro. La forma más fácil de obtenerlo es usar el widget de sueño profundo .

Yanokwa
fuente
2
Odio los widgets con pasión. ¿Hay algo que no sea widgety?
AngryHacker
1
Para los propietarios de computadoras portátiles, la forma más fácil es cerrar la tapa. El menú de Apple en la esquina superior izquierda también tiene la opción "dormir" (al menos en mi Tiger).
Tadeusz A. Kadłubowski
3

La hibernación también se activará automáticamente si la batería de su computadora portátil se agota por completo.

Bob D
fuente
2
Una Mac mini no tiene batería ...
Arjan
2

He leído que "Safe Sleep" está activado de forma predeterminada en todos los Intel Macs y en algunas máquinas PowerPC de último modelo (creo que los Intel mini tienen este soporte, pero los PPC probablemente no lo tengan, sin hacks no compatibles).

Pero "Safe Sleep" en sí mismo no es exactamente lo mismo que "hibernación". Es una combinación de guardar RAM en el disco pero también hacer una suspensión normal. Esto permite una activación rápida y también preserva el estado del sistema si la energía falla por completo mientras la máquina está en reposo.

Puede saber si un sistema está usando la suspensión segura (después de al menos una suspensión) buscando un archivo / var / vm / sleepimage que tenga el mismo tamaño que la RAM instalada. Además, cuando Safe Sleep está activo, habrá un retraso más largo entre hacer clic en el elemento del menú Sleep (o el botón, o mantener presionado Command-Option-Eject) antes de que la luz de estado de la máquina comience su ciclo normal de aumento / disminución gradual.

La parte final de la solución es hacer que la máquina se apague por completo después de guardar RAM la imagen dormida. Parece que es posible configurar esto usando el programa de línea de comandos pmset para configurar el modo de hibernación . Puede pagar algo como Deep Sleep para una forma automatizada de hacer este cambio de configuración.

Chris Johnsen
fuente
La suspensión segura no estaba activada de manera predeterminada en mi Intel Mac mini. Utilicé SmartSleep para habilitarlo, pero de hecho pmsetpuedo lograr lo mismo.
Arjan