Como posso suspender / hibernar da linha de comando?

300

Como posso suspender ou hibernar meu laptop usando a linha de comando, sem instalar software adicional?

    
por user1034 09.08.2010 / 22:24

13 respostas

249

Tradicionalmente, o ubuntu suportava um método bastante abrupto de suspensão e hibernação. Nenhum deles se integraria bem a outros aplicativos e às vezes nem funcionaria em algumas máquinas. O novo método não requer raiz e notifica todos os aplicativos que estão ouvindo eventos de energia.

Método Systemd

A partir do Ubuntu 16.04, systemctl call deve ser usado (veja Suspender o comando em Ubuntu 16.04 )

systemctl suspend

e

systemctl hibernate

Novo método

Veja a resposta aqui nesta página de Adam Paetznick sobre o uso de dbus . Idealmente, você criaria um atalho / script ~/bin/suspend que facilite o uso dessa ação.

Para uso sobre o ssh, você deve modificar as regras do policykit conforme descrito por Peter V. Mørch

Método antigo

De acordo com o Fórum do Ubuntu , você pode usar os seguintes comandos:

pmi action suspend

e

pmi action hibernate

Isso requer que você instale o pacote powermanagement-interface (não testado).

sudo apt-get install powermanagement-interface

Também encontrei os comandos sudo pm-suspend e sudo pm-hibernate para trabalhar no meu netbook.

    
por txwikinger 09.08.2010 / 22:32
185

A maneira amigável para o gnome é usar o dbus.

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

Existem duas vantagens para este comando em relação a pm-suspend .

  1. Ele irá bloquear sua tela (no currículo) se você tiver essa opção selecionada no gnome.

  2. Não requer privilégios de root, por isso é fácil adicioná-lo como um atalho de teclado, por exemplo.

Como mencionado nos comentários, a troca do Suspend na última linha para Hibernate cria um comando de hibernação:

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Hibernate

Se a hibernação lançar Error org.freedesktop.UPower.GeneralError: not authorized , seu usuário pode não ter permissão para hibernar. Edite ou crie /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla para que contenha a seguinte seção: (fonte)

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Isso foi testado em UbuntuGnome 14.04 .

Nota: Isso é basicamente o mesmo que a resposta do qbi, mas atualizado para funcionar para versões mais novas do Ubuntu, bem como incluir o modo de hibernação.

    
por Adam Paetznick 03.05.2012 / 22:40
50

inglês

Se você quiser que seu computador seja suspenso em uma hora porque deseja ir para a cama ouvindo sua estação de rádio favorita, abra o terminal e digite:

sudo bash -c "sleep 1h; pm-suspend"

e o seu computador adormecerá em 1 hora. Quando você acordar, ele manterá suas imagens abertas e todas as suas coisas.

Você pode substituir 1h pelo que deseja: h para horas, m para minutos, s para segundos, d para dias.

Boa noite!

Français

sudo bash -c "sleep 1h; pm-suspend"

et votre ordinateur s'endormira dans une heure. Quand vous vous réveillerez, il aura conserva en mémoire vos applications ouvertes.

Você já tem remplacer 1h par ce que vous voulez: h pour les heures, m pour les minutos, s pour les secondes, d pour les jours.

Bonne nuit!

Español

Si quieres suspender tu computadora em um momento porque você está a dormir escuchando tu estación de radio, o solo sola el terminal y escribe:

sudo bash -c "sleep 1h; pm-suspend"
Você pode entrar em contato conosco em 1 hora. Cuando desponta, todos hajam quedados abertos às imagens e todas as cosas.

reemplazar por 1h por lo que deseja: h para horas, m para minutos, s para segundos, d para días.

¡Buenas noches!

    
por greg 18.01.2012 / 09:31
30

Para Ubuntu 12.04 LTS e Ubuntu 13.04

Para obter a hibernação:

sudo pm-hibernate

Para suspender:

sudo pm-suspend
    
por Ten-Coin 14.09.2012 / 15:45
22

Você pode usar o arquivo /sys/power/state para fazer isso. Primeiro, descubra quais estados são suportados:

user@linux:_> cat /sys/power/state
standby mem disk

root@linux:~> echo -n mem > /sys/power/state  # suspend to ram
root@linux:~> echo -n disk > /sys/power/state  # suspend to disk

ou via dbus:

    # Suspender     dbus-send --session --dest = org.gnome.PowerManager \       --type = method_call --print-reply --reply-timeout = 2000 \       / org / gnome / PowerManager org.gnome.PowerManager.Suspend     #Hibernar     dbus-send --session --dest = org.gnome.PowerManager \       --type = method_call --print-reply --reply-timeout = 2000 \       / org / gnome / PowerManager org.gnome.PowerManager.Hibernate

De acordo com esta entrada na barra de ativação , a interface acima foi removida . Então não funcionaria mais no Ubuntu.

    
por qbi 09.08.2010 / 22:35
11

Para desligar um sistema (14.04) da linha de comando (ou atalho de teclado) use:

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

Eu descobri isso brincando com o gdbus, que pode listar as interfaces disponíveis:

Para listar os serviços disponíveis no barramento:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

Para encontrar os métodos:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
    
por simonltwick 07.08.2014 / 17:08
8

A resposta de Adam Paetznick não funcionou como supostamente lúcida para mim; a máquina acordou desbloqueada, mesmo que o gerenciador de energia gnome esteja configurado para travar a tela ao acordar. Eu quero que a tela seja bloqueada no wake-up e descobri que o seguinte faz isso:

$ gnome-screensaver-command --lock && pmi action hibernate

Eu imagino que isso não depende da configuração do gnome, mas eu não testei isso.

    
por Aryeh Leib Taurog 15.05.2012 / 18:07
8

desde 15.04 systemD é o sistema init padrão, então existe um novo comando a ser usado:

systemctl suspend
    
por k1l 27.11.2015 / 14:36
2

Nova interface

… que funciona em 15.10 Wily, e possivelmente utópico e vívido.

dbus-send --print-reply --system                         \
    --dest=org.freedesktop.login1                        \
    /org/freedesktop/login1                              \
    org.freedesktop.login1.Manager.Suspend boolean:true

Com ajuda, isso não exige sudo, diferente do comando pm-suspend .

    
por Gringo Suave 18.11.2015 / 19:09
1

Veja como colocar uma máquina remota em standby sobre o ssh:

ssh -t 192.168.1.4 'sudo nohup &>/dev/null bash -c "(sleep 1; echo -n mem >/sys/power/state) &"'
x@192.168.1.4's password: 
[sudo] password for x: 
Connection to 192.168.1.4 closed.

/ sys / power / state funciona no Ubuntu 13.10. pmi dá erro de Dbus.

    
por user229115 27.12.2013 / 06:09
0

Pessoalmente, tenho experimentado o método pmi. No entanto, quando tentei isso, recebi uma mensagem de erro: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1 . No entanto, há uma solução alternativa no 3º comentário de < href="https://bugs.launchpad.net/ubuntu/+source/powermanagement-interface/+bug/1176829"> este relatório de bug , que parece ter funcionado para mim (estou usando o Ubuntu 13.03).

    
por TSJNachos117 31.08.2013 / 07:11
0

Atualização para quem, como eu, ainda trabalha nos sistemas KDE / Ubuntu 14.04. Para bloquear, use qdbus e suspenda o uso dbus . Comando completo:

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Para hibernar, ou seja, suspender para o disco rígido em vez de RAM, substitua 'Suspender' no final do comando por 'Hibernar'.

Para apenas bloquear a tela sem suspender, xscreensaver-command -lock funcionará, se você digitar apenas 1 hífen para a opção 'bloquear' e somente se a proteção de tela estiver sendo executada. Na verdade não é um comando muito útil. Usar i3lock é mais fácil, mas você não receberá uma caixa de diálogo de login para voltar ao trabalho, como você faria ao usar qdbus .

    
por LinuxRev 26.05.2017 / 14:28
0

O seguinte funciona para mim no 16.04 (com a área de trabalho do Gnome):

gnome-screensaver-command --lock && compsleep

Eu também o instalei como um atalho de teclado personalizado através do painel de configurações do Gnome como teclas "Shift-Super-X".

    
por christopherbalz 28.05.2018 / 17:16