A execução de Python e Matplotlib está impedindo meu computador de hibernar? Como posso descobrir?

Nov 15 2020

Tenho notado que às vezes, quando abro meu laptop, a bateria caiu para 99% ou mesmo 97% após um dia ou mais.

Eu o configurei para hibernar depois de ser fechado por 5 segundos e verifiquei que ao ver que, se ele ficar fechado por mais de cinco segundos, preciso usar o touch-ID ou uma senha para começar a usá-lo.

Provavelmente existe uma maneira mais inteligente de descobrir ou pesquisar se / quando ele entrou no modo de espera pela última vez, mas não sei.

Mas às vezes, enquanto trabalho, de repente preciso parar por horas ou mais, e em alguns casos estou executando o Python do iTerm2 e tenho um gráfico matplotlib aberto que não quero fechar (eu uso widgets e ele tem um painel de controle e configurações Quero continuar a usar mais tarde).

E às vezes noto que, quando abro meu MacBook Air novamente, a bateria acabou.

Testando, vejo que ainda preciso usar o Touch ID após 5 segundos quando estiver neste estado.

Questões:

  1. A execução de Python e Matplotlib está impedindo meu computador de hibernar?
  2. Há alguma maneira de descobrir ou pesquisar se / quando ele entrou no modo de espera pela última vez? Isso será útil na depuração desse problema.

clique para aumentar

Respostas

1 Allan Nov 15 2020 at 09:08

Tenho notado que às vezes, quando abro meu laptop, a bateria caiu para 99% ou mesmo 97% após um dia ou mais.

Uma queda de 1 a 3% na bateria em um período de 24 a 48 horas é muito normal e esperada. Quando você colocar o Mac para hibernar, todos os processos serão suspensos (desde que você não feche as janelas do iTerm).

A pequena queda na bateria é provavelmente devido ao PowerNap (suporte para MacBook Air desde 2010), que irá despertar periodicamente o computador para verificar se há e-mails, atualizações, sincronizar documentos iCloud, mensagens, notas, etc.

A execução de Python e Matplotlib está impedindo meu computador de hibernar?

Poderia? Sim. Mas com base nos sintomas que você apresentou, não é. Seu Mac demoraria "um ou dois dias" e só perderia 1-3% da carga se houvesse um processo ativo impedindo-o de hibernar. Uma maneira super fácil de confirmar isso é verificar o processo do script (você nunca mencionou o que ele faz, então minha resposta é genérica aqui), se o script foi concluído ou progrediu durante esse tempo, então obviamente estava em execução. Se estiver exatamente onde você o deixou, seu Mac estava dormindo.

  • Os processos do Terminal param se o Mac estiver em repouso?

Há alguma maneira de descobrir ou pesquisar se / quando ele entrou no modo de espera pela última vez? Isso será útil na depuração desse problema.

Não há problema para depurar.

O que você está vendo é completamente normal. Uma queda de carga da bateria de 1-3% (em média 2%) em "um dia ou mais" está dentro da norma, mesmo com o PowerNap desativado. Se o seu Mac não estivesse dormindo, sua reclamação seria muito diferente - seria que a bateria acabou completamente e travou seu aplicativo / processo. Para diagnosticar esse problema, você emitiria o comando

% pmset -g assertions

Isso vai lhe dizer o que está impedindo seu Mac de hibernar. Ele deve retornar zeros.

A outra razão pela qual "um problema" não deve ser assumido é que há uma distinção muito importante entre sono e hibernação. Quando seu Mac hiberna, a CPU entra em um modo de energia mais baixa (não desligada) e o estado atual é mantido na memória (há muito mais, mas vamos limitá-lo a essas funções principais). Isso significa que há um consumo de energia. Se você quiser interromper o consumo de energia (tecnicamente, você não pode impedir completamente o descarregamento de uma bateria devido à física e à química que regem a bateria), é necessário hibernar o computador. É aqui que o estado será gravado no disco e a energia desligada.

Agora, para ver quando o Mac adormeceu, você também pode obter o registro pmset:

% pmset -g log | grep -i "sleep\|wake" 

O problema com isso é que, com as versões mais recentes do macOS, o computador ainda será ativado por motivos arbitrários, mesmo com o PowerNap desativado. Eu sei disso porque posso ouvir um scanner de código de barras "reiniciado" (faz um som quando conectado ao USB) periodicamente, embora eu tenha o Mac dormindo com o PowerNap desativado. Por algum motivo, ele redefine o barramento USB. Não investiguei mais isso porque a) acontece em todos os Macs que usei eb) o Mac nunca teve nenhum efeito nocivo quando acordado. Todos os processos foram suspensos como deveriam.

Limitando o escopo dos sintomas à queda na carga da bateria durante alguns dias, você acabará procurando uma solução para um não-problema.