AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 792057
Accepted
Steve Cohen
Steve Cohen
Asked: 2025-03-07 04:45:45 +0800 CST2025-03-07 04:45:45 +0800 CST 2025-03-07 04:45:45 +0800 CST

Qual é a diferença entre suspender um computador e simplesmente se afastar dele?

  • 772

Tenho lido muito conteúdo na web sobre os modos de suspensão, hibernação e suspensão de um computador, mas não encontrei nenhuma discussão sobre esta questão aparentemente simples:

Qual é a diferença, se houver, entre

  1. apenas saindo de um computador Linux , executando, digamos, Ubuntu 22.4 LTS, mas realmente poderia ser qualquer distribuição e versão, e
  2. invocando explicitamente o comando suspend , seja pela linha de comando ou por uma interface gráfica?

Ambos os casos devem permitir que você volte ao computador mais tarde, clique com o mouse ou digite uma tecla e "acorde-o".

Se há uma diferença, qual é? Se não há diferença, por que o comando suspend é necessário?

E, a propósito, existe um nome para "simplesmente ir embora"? É isso que "dormir" significa?

Vejo esses termos sendo usados ​​sem nenhuma definição precisa do que cada um significa.

Atualização: Por que estou perguntando isso?

A maioria do material que encontro em relação às diferentes formas de sono, suspensão ou hibernação do computador assume que a principal preocupação de qualquer um que pergunte é o consumo de energia. Essa não é minha preocupação.

Minha preocupação é que quando eu sair do computador, eu possa voltar a ele com segurança e não precise reiniciá-lo.

Minha preocupação é que comprei um laptop bem caro da Lenovo, com uma placa de vídeo nVidia (não vou entrar em detalhes técnicos aqui) da qual não posso me afastar e assumir com segurança que o sistema acordará quando eu voltar a ele e pressionar uma tecla ou clicar com o mouse. Às vezes funciona, às vezes não. Parece que invocar explicitamente a suspensão é um pouco mais confiável, não trava com tanta frequência, mas não é 100% confiável, talvez 90%. No meu computador anterior, um laptop Lenovo de 10 anos, eu não precisava me preocupar com nada disso.

Atualização 2: corrigindo o original para mencionar "livrar-se do Secure Boot no UEFI" em vez de "livrar-se do UEFI" como um pré-requisito para atingir a hibernação.

A hibernação se sugere como a maneira mais confiável de conseguir o que estou procurando, mas não está disponível no meu computador que usa Secure Boot sob UEFI. Então uma opção é desabilitar o Secure Boot. Eu estava relutante em fazer isso, mas parece ser o caminho que tenho que seguir.

Minha principal preocupação é a confiabilidade, não o consumo de energia.

suspend
  • 2 2 respostas
  • 61 Views

2 respostas

  • Voted
  1. Best Answer
    Marcus Müller
    2025-03-07T07:24:48+08:002025-03-07T07:24:48+08:00

    Se há alguma diferença, qual é?

    "Suspender" no Linux tem um significado bem definido , especialmente (mas não exclusivamente) na plataforma x86_64. Quando as pessoas dizem "suspender", elas querem dizer "suspender para RAM"; somente em plataformas onde isso não é suportado pelo hardware "suspender para ocioso" seria algo que alguém poderia considerar. Não estou ciente de nenhuma plataforma Linux atual que não suporte suspender para RAM; elas podem existir, mas para o seu PC, não há dúvidas sobre "suspender" significar "suspender para RAM", conforme descrito abaixo.

    Isso significa que você interrompe todos os núcleos da CPU, depois de salvar todos os estados dos dispositivos na RAM, colocando todos os dispositivos em um estado em que eles podem ser colocados em hibernação e despertados consistentemente mais tarde, colocando-os em hibernação e, finalmente, colocando os registros de todos os núcleos da CPU em um estado bem definido, antes de colocar cada núcleo da CPU em um estado de hibernação específico.

    Nesse estado de hibernação, a CPU na verdade é parada; apenas o controlador de memória continua funcionando para atualizar a RAM, para que o estado que você armazenou na RAM não seja perdido. Apenas as unidades necessárias para poder acordar (por exemplo, o controlador USB para que você possa pressionar um botão no seu teclado para acordar) são energizadas e operam de forma autônoma. Coisas como discos rígidos e SSDs são literalmente instruídos a desligar.

    (Esses estados de sono são coisas bem definidas no x86 e na maioria das outras plataformas que você pode encontrar na realidade. Entrar nesses estados é um procedimento bem documentado, e você tem que fazer coisas específicas para acordar. Não é nada indefinido o que isso significa!)

    Se você simplesmente se afastar, pelo menos um núcleo da CPU continuará funcionando, e mesmo que um sistema Linux em execução não tivesse coisas para fazer regularmente (atualizar a tela 60 vezes por segundo, manter a placa de som alimentada com amostras, atualizar contadores, manter a mídia de armazenamento e, geralmente, fazer muitas coisas em segundo plano), ele nunca desligaria completamente.

    Dessa forma, quando você se afastar, sua fonte de alimentação ainda estará alimentando toda a sua CPU, todos os seus dispositivos e estará pronta para fornecer grandes quantidades de energia de repente.

    No outro lado dessa grande economia de energia da suspensão está o fato de que, bem, você está realmente parando sua CPU! Nenhum software está mais em execução. Se você simplesmente se afastasse e alguém escrevesse para você no chat, e você tivesse deixado seu programa de chat aberto, você ouviria um som. Na suspensão, nada disso poderia acontecer, porque não há mais nada "conversando" com nada.

    Por que o comando suspend é necessário?

    Para parar de agendar processos de userland, para terminar de escrever coisas no armazenamento, para colocar componentes de hardware em um estado de desligamento, para desligá-los, para salvar estados de CPU na RAM e, finalmente, colocar os núcleos de CPU no modo de hibernação correto. (Você descobrirá que coisas como systemctl suspendfazem muitas coisas para deixar seu computador bem preparado.)

    Minha preocupação é que quando eu sair do computador, eu possa voltar a ele com segurança e não precise reiniciá-lo.

    Claro, na ausência de bugs de driver e hardware, isso é confiável. Na prática, isso não tem sido um problema nos últimos ~ 13 anos ou mais em hardware de laptop e desktop bem suportado. Há exceções irritantes para isso – drivers de kernel proprietários para placas de vídeo vêm à mente. Mas isso melhorou! Então, em geral, sim, você pode esperar isso.

    Parece que você é afetado por isso e, francamente, a Nvidia, que está literalmente ganhando bilhões vendendo GPUs para usuários Linux (principalmente para fins de aprendizado de máquina, o mercado de GPUs para gamers/laptops é relativamente pequeno, comparativamente a isso), é a culpada por isso.

    A hibernação se apresenta como a maneira mais confiável de conseguir o que procuro, mas não está disponível no meu computador que usa UEFI.

    não é assim que funciona: a hibernação funciona bem em máquinas UEFI. Na verdade, o estado de inicialização mais bem definido que sai dos carregadores de inicialização UEFI é mais agradável para sair da hibernação do que a bagunça que era o BIOS. Além disso, se a hibernação funcionasse apenas em máquinas "BIOS", ela simplesmente não existiria mais. "BIOS" hoje em dia é emulado pelo mesmo firmware que implementa a interface UEFI. Então, seja lá o que for que o impeça de hibernar: não é o fato de você estar executando em uma máquina UEFI.

    Então uma opção é se livrar do UEFI, mas não quero fazer isso a menos que não haja outra maneira.

    não é uma opção, é isso que inicializa seu computador :)

    • 0
  2. bakunin
    2025-03-07T05:50:18+08:002025-03-07T05:50:18+08:00

    A principal diferença é o consumo de energia. Qualquer um dos seguintes pontos pode ou não se aplicar ao seu sistema:

    • Hibernação do disco rígido: discos rígidos clássicos (aqueles com discos giratórios) usam energia para manter os pratos girando durante o tempo de atividade. Alguns têm eletrônicos de conservação de energia, o que os faz parar de girar após um certo tempo sem uso, mas alguns não, e o SO os desligará ao suspender.

    • Ciclos de clock da CPU: especialmente versões móveis de CPUs podem usar uma variedade muito ampla de taxas de clock. Como regra geral, o consumo de energia de uma CPU se correlaciona com o quadrado de sua taxa de clock (é por isso que os computadores modernos precisam de todos esses mecanismos elaborados de transferência de calor - suas taxas de clock são absurdamente altas), portanto, uma quantidade significativa de energia pode ser conservada quando a taxa de clock é reduzida a quase zero.

    • desligue o monitor: laptops/notebooks normalmente usam ~30% da energia para alimentar seu monitor interno - se ele for usado. Desligá-lo é especialmente útil para que esses computadores móveis durem mais com a bateria.

    • desligue hardware não essencial: há alguns dispositivos que um computador suspenso não precisa, por exemplo, o adaptador WLAN. Desligar esses dispositivos não essenciais também economiza energia e prolonga o tempo de execução da bateria. Basicamente, no modo suspenso, você precisa apenas de RAM (que precisa ser constantemente atualizada para manter seu conteúdo) e talvez algumas partes do chipset, talvez o conteúdo da memória local das GPUs - a maioria das outras coisas pode ser desligada e rapidamente ligada quando a operação normal for retomada.

    Atualização, após a pergunta ter sido reformulada

    Não conheço muito bem o hardware de PC, pois trabalho principalmente com sistemas POWER e System-Z (também conhecidos como mainframe), então posso lhe dar apenas dicas gerais:

    Normalmente, o problema com modos de suspensão com falha é a reinicialização do hardware gráfico. Muitos laptops têm GPUs integradas ao conjunto de chips e, quando ele é ligado novamente, restaurar os registros/status da GPU não é tão fácil quanto restaurar o estado da CPU.

    Primeiro, determine qual é exatamente o status após um retorno malsucedido da suspensão: sistema completamente inativo, GPU inativa, mas sistema ativo, sistema e GPU ativos, mas X inativo, etc. Tente pingisso e/ou sshisso.

    Se você puder se conectar a ele: examine /var/log/kern.loge /var/log/Xorg.0.log, pode haver algumas informações úteis.

    Você também pode tentar conectar um terminal serial (via USB). Talvez o sistema esteja funcionando, mas o hardware de rede esteja tão inativo quanto os gráficos.

    Uma palavra sobre hibernação, também conhecida como suspend-to-disk: isso é frequentemente desabilitado em muitas distribuições e tem que ser explicitamente reabilitado se você quiser usá-lo. Eu não uso nenhum Ubuntu, mas aqui está um link que pode ajudar.

    • -1

relate perguntas

  • Como o systemctl suspend funciona?

  • pm-suspender vs systemctl suspender?

  • Dicas de solução de problemas para Suspend-to-RAM

  • Laptop acorda quando a tampa está fechada

  • Erro de leitura no dispositivo de troca

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve