O Mac OS X suporta hibernação?


40

No Windows, você pode hibernar o computador, para que ele inicie muito mais rápido, consumindo zero energia e "hibernando".

Vejo uma opção para dormir no meu Mac mini, mas não hibernar. O Mac suporta hibernação?

Eu estou no Leopard.

Respostas:


34

O OS X possui apenas uma opção "suspensão". Você não pode alterar o nome, mas, para alterar o comportamento, uso uma versão antiga do SmartSleep em um Mac mini (embora no modo "suspensão e hibernação", semelhante ao MacBook). Funciona para um mini, embora o site se refira apenas a MacBooks.

(O SmartSleep ainda estava livre quando eu escrevi isso em 2009.)

Ocasionalmente, recebo reclamações sobre o hardware não ter sido removido corretamente (mas o OS X nunca me diz qual hardware, e meus discos USB do Time Machine parecem bons - eu deveria espiar os logs um dia e presumo que isso esteja relacionado ao OS X, não para o SmartSleep).

Testei rapidamente o "somente hibernação" do SmartSleep nesse mini (Intel; rodando 10.5), e parece funcionar também. Ao fazer esses testes, notei que, depois que a tela fica preta, a luz de energia começa a pulsar (gosto de indicar suspensão em vez de hibernar) por alguns segundos. Talvez ainda esteja gravando RAM no disco. (Até agora, eu sempre pensei que, no meu MacBook, o pulsar indicava que tudo estava feito. Mas agora acho que, qualquer que seja o modo de suspensão que você esteja usando, provavelmente não deve desconectar a energia muito cedo). Depois de um tempo, ele desliga completamente.

Em 2006, a Macworld explica como obter o mesmo sem esse painel de preferências do SmartSleep. Para verificar a configuração atual:

pmset -g | grep hibernatemode

De acordo com o antigo artigo da Macworld, aplica-se o seguinte, mas não deixe de ler a resposta de Lauri, que sugere que atualmente apenas 0, 3 e 25 devem ser usados :

  • 0 - Modo de suspensão no estilo antigo, com a RAM ligada durante o sono, suspensão segura desativada e ativação super rápida.
  • 1 - O modo de hibernação, com o conteúdo da RAM gravado no disco, o sistema é totalmente desligado enquanto "dorme" e é ativado mais lentamente, devido à leitura do conteúdo da RAM no disco rígido.
  • 3 - O modo padrão nas máquinas introduzidas desde o outono de 2005. A RAM é ligada durante o modo de suspensão, mas o conteúdo da RAM também é gravado no disco antes de dormir. No caso de perda total de energia, o sistema entra no modo de hibernação automaticamente.
  • 5 - É o mesmo que no modo 1, mas é para aqueles que usam memória virtual segura (em Preferências do sistema »Segurança).
  • 7 - É o mesmo que no modo 3, mas é para aqueles que usam memória virtual segura.

E os mesmos números podem ser usados ​​para alterar a configuração do modo de suspensão:

sudo pmset -a hibernatemode 1

11

Eu escrevi um script que permitirá que você entre na hibernação imediatamente (sem alterar suas configurações permanentemente). Acho isso bastante útil, pois gosto das configurações padrão, mas quero forçar a hibernação quando estiver em trânsito. Talvez alguém ache isso útil também ;-)

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

Adicionando à barra de menus

Se você deseja invocar esse script na barra de menus ("systray"), eu:

  1. Coloque esse script em um local adequado (como /usr/local/sbin/).
  2. Crie um AppleScript que simplesmente invoque esse script. Chame de "hibernação"
  3. Adicione seus scripts da apple como um ícone na barra de menus

Agora você pode ativar o script clicando na Barra de Menu-> AppleScripts-> Hibernar


11
por favor, faça uma versão systray :)
DataGreed

Por favor, faça uma versão do systray.
Qed

Oi, obrigado pelos comentários. Infelizmente, o MacBook Pro mais recente que obtive em 2013 tem um desempenho de espera muito melhor do que o meu mac anterior e mantém a vida útil da bateria muito melhor. Infelizmente, infelizmente, há pouco insensato para que eu vá em frente e aprenda sobre o Cocoa para fazer uma versão mais completa. Vou remover essa frase agora.
Oligofren 10/10

Isso é muito interessante, como isso funciona? Não shutdown -s nowentra em vigor imediatamente?
SilverWolf - Restabelecer Monica

11
O @leetbacoon adicionou instruções para adicioná-lo à barra de menus. Eu não possuo um Mac há alguns anos, então não consigo colar nenhuma captura de tela ...
oligofren 18/10

9

A página de manual do pmset também recomenda usar em 25vez de 1.

0000 1000 (bit 3) incentiva o paginador dinâmico a paginar páginas inativas antes da hibernação, para um espaço menor de memória.

0001 0000 (bit 4) incentiva o pager dinâmico a sair da página de forma mais agressiva antes da hibernação, para obter um espaço menor de memória.

Não recomendamos modificar as configurações de hibernação. Quaisquer alterações feitas não são suportadas. Se você optar por fazê-lo de qualquer maneira, recomendamos o uso de uma dessas três configurações. Para seu bem e para o meu, por favor, não use mais nada de 0, 3 ou 25.

[...]

hibernatemode = 25 (binário 0001 1001) é apenas configurável via pmset. O sistema armazenará uma cópia da memória no armazenamento persistente (o disco) e removerá a energia da memória. O sistema irá restaurar a partir da imagem do disco. Se você deseja "hibernação" - sono mais lento, despertar mais lento e melhor duração da bateria, você deve usar esta configuração.

Alguns laptops agora entram em hibernação ( modo de espera ) após cerca de uma hora de sono normal se:

  • O Power Nap não está ativado (portanto, não por padrão)
  • O computador está usando a energia da bateria
  • O computador não está conectado a dispositivos USB ou monitores externos e não está emparelhado com dispositivos Bluetooth

Laptops, Mac minis e iMacs usam cerca de 0,2-0,4 W quando desligados ou hibernando e 0,8-1,4 W no modo de suspensão. A hibernação (e o modo de hibernação + suspensão que os laptops usam por padrão) também pode reduzir a vida útil das unidades .


6

E para o OS X Lion isso funciona melhor para a hibernação

sudo pmset - um modo de hibernação 25

do que

sudo pmset - um modo de hibernação 1

como o modo de hibernação 1, pode causar falhas por algum motivo.


Exatamente o que 25 representa?
Qed

25 é binário para 0001 1001, o que significa que os bits 4, 3 e 0 são definidos (os três 1: s). Todos esses três bits dizem coisas diferentes ao seu computador. O bit 0 (0000 0001) informa ao computador para ativar a hibernação (o que significa salvar memória no disco antes de desligar). O bit 3 (0000 1000) diz ao seu computador para limpar a memória do lixo antigo antes de salvá-lo no disco (para que ele tenha que economizar menos material no disco). O bit 4 (0001 0000) informa ao computador para ser mais agressivo ao limpar a memória (permitindo salvar ainda menos coisas no disco).
Willem

5

Para respostas que dependem da modificação do 'hibernatemode' via pmset, é útil observar que a opção 'force' no pmset torna as alterações transitórias. A configuração não será lembrada quando o sistema acordar da hibernação. Por exemplo:

pmset -a hibernatemode 25 force

Mudará o modo de hibernação para representar uma hibernação tradicional (ou seja, o estado do sistema gravado no disco e a energia removida), mas somente até a próxima vez em que o sistema for ligado ou as configurações forem lidas no disco ( pmset touch).

O uso da opção force evita a necessidade de salvar e restaurar as configurações atuais do modo de hibernação.


Ótima dica! Você pode editar a minha resposta se você se preocupar também :)
oligofren


3

A hibernação também será acionada automaticamente se a bateria do seu laptop acabar completamente.


2
Um Mac mini não tem bateria ...
Arjan 29/09

2

Li que "Safe Sleep" está ativado por padrão em todos os Macs Intel e em algumas máquinas PowerPC de modelos recentes (acho que os mini da Intel têm esse suporte, mas os PPC provavelmente não - sem hacks não suportados).

Mas "sono seguro", por si só, não é exatamente o mesmo que "hibernação". É uma combinação de salvar a RAM no disco, mas também dormir normalmente. Isso permite uma ativação rápida e também preserva o estado do sistema se a energia falhar completamente enquanto a máquina estiver dormindo.

Você pode saber se um sistema está usando o Modo de suspensão segura (após pelo menos um modo de suspensão) verificando um arquivo / var / vm / sleepimage com o mesmo tamanho da RAM instalada. Além disso, quando o Modo de suspensão segura estiver ativo, haverá um atraso maior entre clicar no item de menu Suspender (ou botão, ou pressionar Command-Option-Eject) antes que a luz de status da máquina inicie seu ciclo normal de desvanecimento / desvanecimento.

A parte final da solução é fazer com que a máquina desligue totalmente após salvar a imagem do sono na RAM. Parece que é possível configurar isso usando o programa de linha de comando pmset para definir o hibernatemode . Você pode fazer o checkout de algo como Deep Sleep para uma maneira automatizada de fazer essa alteração na configuração.


O sono seguro não estava ativado por padrão no meu Intel Mac mini. Eu usei o SmartSleep para habilitá-lo, mas na verdade pmsetpode conseguir o mesmo.
Arjan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.