Come posso sospendere / ibernare dalla riga di comando?


Risposte:


312

Tradizionalmente Ubuntu supportava un metodo piuttosto schietto di sospensione e ibernazione. Né si integrerebbe bene con altre app e talvolta non funzionerebbe nemmeno su alcune macchine. Il nuovo metodo non richiede il root e notifica a tutte le applicazioni che ascoltano eventi di potenza.

Metodo Systemd

A partire da Ubuntu 16.04, è systemctlnecessario utilizzare la chiamata (vedere Comando di sospensione in Ubuntu 16.04 )

systemctl suspend

e

systemctl hibernate

Nuovo metodo

Vedi la risposta qui in questa pagina di Adam Paetznick sull'uso di dbus . Idealmente, dovresti creare un ~/bin/suspendcollegamento / script che semplifichi l'utilizzo di questa azione.

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

Vecchio metodo

Secondo il Forum di Ubuntu è possibile utilizzare i seguenti comandi:

pmi action suspend

e

pmi action hibernate

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

sudo apt-get install powermanagement-interface

Ho anche trovato i comandi sudo pm-suspende sudo pm-hibernatelavorare sul mio netbook.


21
pm-suspend e pm-hibernate funzionano per me ed è facile. Richiede sudo ma va bene. (L'idea pmi è stata trovata prima ma l'installazione di un pacchetto per usare suspend è male ...)
user1034

1
Nota che devi apt-get install powermanagement-interfaceeseguire pmi.
nealmcb,

1
Solo alle 23.10 * * funziona, anche con l'interfaccia
powermanagament

1
non funziona con il mio Ubuntu 12.10. dopoapt-get install powermanagement-interface
qualcosa del

1
il nuovo metodo non funziona ora vedi unix.stackexchange.com/questions/153099/…
ijk,

188

Il modo gnome-friendly è usare dbus.

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

Ci sono due vantaggi con questo comando pm-suspend.

  1. Bloccherà lo schermo (al riavvio) se hai quell'opzione selezionata in gnome.

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

Come menzionato nei commenti, lo scambio Suspendnell'ultima riga per Hibernatecreare 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 authorizedl'utente potrebbe non essere autorizzato a ibernare. Modifica o crea in /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklamodo 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: questo è fondamentalmente lo stesso della risposta di qbi, ma aggiornato per funzionare con le versioni più recenti di Ubuntu e anche con l'ibernazione.


15
La tua risposta dovrebbe davvero essere la prima. È un modo gnome non root per non essere installato. Piace!
turbo,

11
A Hibernate, puoi semplicemente sostituire l'ultima riga conorg.freedesktop.UPower.Hibernate
Sheharyar l'

2
sul mio 13.10 funziona. tuttavia, lo schermo non è bloccato al riavvio, anche se in "Sicurezza e privacy" è attivata l' opzione "Richiedi la mia password al risveglio dalla sospensione" .
andreas-h

3
Non ha funzionato per me (Gnome 3.12, Ubuntu 14.04). Sembra che l'interfaccia [UPower.Suspend] sia stata rimossa, secondo bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui Ambros,

4
L'interfaccia di sospensione è stata spostata in logind; askubuntu.com/questions/652978
Khurshid Alam il

58

Inglese

Se vuoi che il tuo computer sospenda tra 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 ti svegli, avrai tenuto le tue immagini aperte e tutte le tue cose.

Puoi sostituirlo 1hcon quello che vuoi: hper ore, mper minuti, sper secondi, dper giorni.

Buona notte!

Français

Se hai appena ricevuto il tuo ordinario se lo fai in un momento in cui hai visto il tuo endormir in un'altra radio preferita, o Terminale e nastro:

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

et votre ordinateur s'endormira dans une heure. Quand vous vous réveillerez, l'aura conservé in mémoire vosuvertes applicazioni.

Vous pouvez remplacer 1hpar vous voulez: hpour the heures, mpour les minutes, spour les secondes, dpour les jours.

Buona notte!

Español

Qui è possibile sospendere il computer in una hora porque quieres ir a dormir escuchando tu estación of radio favorita, tan solo abre el terminal y escribe:

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

y tu computadora se quedará dormida en 1 hora. Cuando despiertes, allí habrán quedado abiertas tus imágenes y todas tus cosas.

Questo è il momento migliore 1hper la scelta: hpara horas, mpara minutos, spara segundos, dpara días.

Buona notte!


Questo è il mio caso d'uso che sto cercando! AFIK pm- * può essere eseguito senza le autorizzazioni del superutente
ruX

31

Per Ubuntu 12.04 LTS e Ubuntu 13.04

Per ottenere l'ibernazione:

sudo pm-hibernate

Per ottenere la sospensione:

sudo pm-suspend

"sudo pm-suspend" non funziona sul compagno di zecca 13 :(
rsjethani

Sì, penso che quel pacchetto non sia stato installato. cerca quei pacchetti in sinaptico.
rɑːdʒɑ

2
Lo svantaggio di questo metodo è che se si utilizza la GUI, pm-suspend NON bloccherà la sessione, il che può essere insicuro.
Raúl Salinas-Monteagudo,

1
Funziona anche su Ubuntu 15.10.
Searene,

1
funziona il 14.04
lts

22

È possibile utilizzare il file /sys/power/stateper fare questo. Innanzitutto scopri quali stati sono supportati:

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

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 # Sospensione dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call --print-reply --reply-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Hibernate

Secondo questa voce in launchpad l'interfaccia sopra è stata rimossa. Quindi non funzionerebbe più in Ubuntu.


La prima idea mi dà: "bash: echo: errore di scrittura: argomento non valido" L'idea Dbus fornisce l'output: "Errore org.freedesktop.DBus.Error.UnknownMethod: Metodo" Suspend "con firma" "sull'interfaccia" org.gnome.PowerManager " non esiste "
user1034

Ho aggiunto una piccola spiegazione a /sys/power/state-thing. Inoltre, il metodo dbus è stato rimosso da Ubuntu, quindi non funzionerà più.
qbi,

$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro,

3
Funziona benissimo. Per le persone che hanno problemi con questo metodo quando si usa sudo, il "pipe to file", noto anche come ">", è in esecuzione nella shell corrente, quindi non ottiene i privilegi di super user durante l'eco. Per prima cosa dovrai usare la sudo -ipipe o la pipe sudo tee:echo mem | sudo tee /sys/power/state
RandomInsano

12

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

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

12

dal 15.04 systemD è il sistema init standard, quindi c'è un nuovo comando da usare:

systemctl suspend

Sto usando Xubuntu 15.04. Il comando systemctl suspendsospende il computer, ma non blocca lo schermo, anche se ho selezionato la casella di controllo "Blocca schermo quando il sistema va in modalità sospensione" in Impostazioni -> Power Manager -> Sicurezza. Qualcuno ha idea del perché?
Teemu Leisti,

Ho eseguito l'aggiornamento a Xubuntu 16.04. Il comando systemctl suspendsospende ancora il computer. Ora, fa anche bloccare lo schermo, se e solo se la casella di controllo "Blocca schermo quando il sistema va in modalità sospensione" in Impostazioni -> Power Manager -> Sicurezza è selezionata.
Teemu Leisti,

8

La risposta dbus-send di Adam Paetznick non ha funzionato come preteso per me su lucido; la macchina si svegliò sbloccata, anche se lo gnome-power-manager è impostato per bloccare lo schermo al risveglio. Voglio che lo schermo sia bloccato al risveglio e ho scoperto che ciò che segue fa:

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

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


Bello. O a xscreensaver-command --lockseconda dei casi.
phyzome

3

Nuova interfaccia

... che funziona nel 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

Utilmente questo non richiede sudo, a differenza del pm-suspendcomando.


Il mio XPS 13 9350 con Debian / Gnome presentava problemi di sospensione / ibernazione alla chiusura del coperchio. Dopo aver eseguito questo comando (e l'equivalente per l'ibernazione), è andato con successo in sospensione (e ibernazione) e ora la chiusura e l'apertura del coperchio funzionano come previsto!
Victor Schröder,

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) &"'
password di x@192.168.1.4: 
[sudo] password per x: 
Connessione a 192.168.1.4 chiusa.

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


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, c'è una soluzione alternativa nel terzo commento di questa segnalazione di bug , che sembra aver funzionato per me (sto usando Ubuntu 13.03).


Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Fossfreedom

0

Aggiornamento per coloro che, come me, lavorano ancora su sistemi KDE / Ubuntu 14.04. Per bloccare l'uso qdbuse sospenderne l'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

Per ibernare, ovvero sospendere sul disco rigido anziché su RAM, sostituire "Sospendi" alla fine del comando con "Sospensione".

Per bloccare lo schermo senza sospenderlo, xscreensaver-command -lockfunzionerà, 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'uso i3lockè più semplice, ma non otterrai una finestra di accesso pulita per tornare al lavoro, come faresti quando lo usi qdbus.


0

Quanto segue funziona per me su 16.04 (con desktop Gnome):

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".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.