Come posso sospendere / ibernare dalla riga di comando?

307

Come posso sospendere o ibernare il mio laptop usando la linea di comando, senza installare software aggiuntivo?

    
posta user1034 09.08.2010 - 22:24

13 risposte

256

Tradizionalmente, Ubuntu supportava un metodo piuttosto brusco di sospensione e ibernazione. Nessuno dei due si integrerebbe bene con altre app e talvolta non funzionerebbe nemmeno su alcune macchine. Il nuovo metodo non richiede root e notifica a tutte le applicazioni l'ascolto degli eventi di alimentazione.

Metodo Systemd

A partire da Ubuntu 16.04, deve essere utilizzata la chiamata systemctl (Vedi Sospendi comando in Ubuntu 16.04 )

systemctl suspend

e

systemctl hibernate

Nuovo metodo

Vedi la risposta qui in questa pagina di Adam Paetznick riguardante l'uso di dbus . Idealmente dovresti creare una scorciatoia / script ~/bin/suspend che faciliti l'uso di questa azione.

Per l'uso su ssh, dovresti modificare le regole del policykit come delineato da Peter V. Mørch

Vecchio metodo

Secondo il Forum di Ubuntu puoi usare i seguenti comandi:

pmi action suspend

e

pmi action hibernate

Ciò richiede l'installazione del pacchetto interfaccia di powermanagement (non testato).

sudo apt-get install powermanagement-interface

Ho trovato anche i comandi sudo pm-suspend e sudo pm-hibernate per funzionare sul mio netbook.

    
risposta data txwikinger 09.08.2010 - 22:32
186

Il modo in cui gnome è usare dbus.

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

Ci sono due vantaggi per questo comando oltre pm-suspend .

  1. Blocca lo schermo (al ripristino) se l'opzione è selezionata in gnome.

  2. Non richiede il privilegio di root, quindi è facile aggiungerlo come scorciatoia da tastiera, per esempio.

Come menzionato nei commenti, lo scambio di Suspend nell'ultima riga in Hibernate crea un comando di ibernazione:

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

Se l'ibernazione genera Error org.freedesktop.UPower.GeneralError: not authorized , all'utente potrebbe non essere consentito di ibernare. Modifica o crea /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla in modo che contenga la seguente sezione: (fonte)

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

Questo è stato testato su UbuntuGnome 14.04 .

Nota: Questa è sostanzialmente la stessa risposta di qbi, ma aggiornata per funzionare con le versioni più recenti di Ubuntu e includendo l'ibernazione.

    
risposta data Adam Paetznick 03.05.2012 - 22:40
50

English

Se vuoi sospendere il tuo computer in un'ora perché vuoi andare a letto ascoltando la tua stazione radio preferita, apri il terminale e digita:

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

e il tuo computer si addormenterà tra 1 ora. Quando sei sveglio, avrà mantenuto le tue immagini aperte e tutte le tue cose.

Puoi sostituire 1h con quello che desideri: h per ore, m per minuti, s per secondi, d per giorni.

Buona notte!

Français

Si vous voulez juste que votre ordinateur se mette in mostra in un certo senso la tua vita in tutto il mondo in radio e in radio, ouvrez Terminal et tapez:

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

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

Vous pouvez remplacer 1h par ce que vous voulez: h pour les heures, m pour les minutes, s pour les secondes, d pour les jours.

Bonne nuit!

Español

Si quieres suspender tu computadora en una hora porque quieres un dormir escuchando tu estación de radio favorita, tan solo abre el terminal y escribe:

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

y tu computadora se quedará dormida in 1 ora. Cuando despiertes, tutti gli habrán quedado abiertas tus imágenes y todas tus cosas.

Puedes reemplazar 1h per lo sconto: h para horas, m para minutos, s para segundos, d para dias.

¡Buenas noches!

    
risposta data greg 18.01.2012 - 09:31
30

Per Ubuntu 12.04 LTS e Ubuntu 13.04

Per ottenere la sospensione:

sudo pm-hibernate

Per ottenere la sospensione:

sudo pm-suspend
    
risposta data Ten-Coin 14.09.2012 - 15:45
22

Puoi usare il file /sys/power/state per fare questo. Innanzitutto scopri quali sono gli stati supportati:

[email protected]:_> cat /sys/power/state
standby mem disk

[email protected]:~> echo -n mem > /sys/power/state  # suspend to ram
[email protected]:~> echo -n disk > /sys/power/state  # suspend to disk

o via dbus:

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

In base a questa voce nel launchpad è stata rimossa l'interfaccia di cui sopra . Quindi non funzionerebbe più su Ubuntu.

    
risposta data qbi 09.08.2010 - 22:35
11

Per spegnere un sistema (14.04) dalla riga di comando (o dalla scorciatoia da tastiera) usa:

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

L'ho scoperto giocando con gdbus che può elencare le interfacce disponibili:

Per elencare i servizi disponibili sul bus:

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

Per trovare i metodi:

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

La risposta di dbus-send di Adam Paetznick non ha funzionato per me in modo lucido; la macchina si è svegliata sbloccata, anche se gnome-power-manager è impostato per bloccare lo schermo al risveglio. Voglio che lo schermo sia bloccato alla sveglia e ho scoperto che quanto segue fa questo:

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

Immagino che questo non dipenda dalla configurazione di gnome, ma non l'ho provato.

    
risposta data Aryeh Leib Taurog 15.05.2012 - 18:07
8

poiché 15.04 systemD è il sistema init standard, quindi è necessario utilizzare un nuovo comando:

systemctl suspend
    
risposta data k1l 27.11.2015 - 14:36
2

Nuova interfaccia

... che funziona in 15.10 Wily, e forse Utopic e Vivid.

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

Questo non richiede necessariamente sudo, a differenza del comando pm-suspend .

    
risposta data Gringo Suave 18.11.2015 - 19:09
1

Ecco come mettere una macchina remota in standby su ssh:

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

/ sys / power / state funziona in Ubuntu 13.10. pmi dà errore Dbus.

    
risposta data user229115 27.12.2013 - 06:09
0

Personalmente, ho sperimentato il metodo pmi. Tuttavia, quando ho provato questo, ho ricevuto un messaggio di errore: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1 . Tuttavia, vi è una soluzione alternativa nel 3 ° commento di < a href="https://bugs.launchpad.net/ubuntu/+source/powermanagement-interface/+bug/1176829"> questo bug report , che sembra aver funzionato per me (sto usando Ubuntu 13.03).

    
risposta data TSJNachos117 31.08.2013 - 07:11
0

Aggiornamento per coloro che, come me, lavorano ancora sui sistemi KDE / Ubuntu 14.04. Per bloccare usa qdbus , e per sospendere usa 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

Per ibernare, ovvero sospendere il disco rigido anziché la RAM, sostituire 'Sospendi' alla fine del comando con 'Ibernazione'.

Per bloccare semplicemente lo schermo senza sospendere, xscreensaver-command -lock funzionerà, SE si digita solo 1 trattino per l'opzione '-lock' e solo se lo screensaver è in esecuzione. In realtà non è un comando molto utile. L'utilizzo di i3lock è più semplice, ma in questo caso non avrai una finestra di accesso chiara per tornare al lavoro, come quando utilizzi qdbus .

    
risposta data LinuxRev 26.05.2017 - 14:28
0

Il seguente lavoro per me è il 16.04 (con Gnome desktop):

gnome-screensaver-command --lock && compsleep

L'ho anche installato come scorciatoia da tastiera personalizzata tramite il pannello delle impostazioni di Gnome come tasti "Shift-Super-X".

    
risposta data christopherbalz 28.05.2018 - 17:16

Leggi altre domande sui tag