Wie kann ich die Befehlszeile anhalten / in den Ruhezustand versetzen?


Antworten:


314

Ubuntu unterstützte traditionell eine ziemlich stumpfe Methode für das Anhalten und den Ruhezustand. Beides lässt sich nicht gut in andere Apps integrieren und funktioniert auf einigen Computern manchmal nicht. Die neue Methode erfordert kein Root und benachrichtigt alle Anwendungen, die auf Stromereignisse warten.

Systemd-Methode

Ab Ubuntu 16.04 muss systemctlcall verwendet werden (siehe Suspend-Befehl in Ubuntu 16.04 )

systemctl suspend

und

systemctl hibernate

Neue Methode

Sehen Sie die Antwort hier auf dieser Seite von Adam Paetznick bezüglich der Verwendung von dbus . Idealerweise würden Sie eine ~/bin/suspendVerknüpfung / ein Skript erstellen, die / das die Verwendung dieser Aktion vereinfacht.

Für die Verwendung über ssh sollten Sie die Policykit-Regeln wie von Peter V. Mørch beschrieben ändern

Alte Methode

Laut Ubuntu-Forum können Sie folgende Befehle verwenden:

pmi action suspend

und

pmi action hibernate

Dies setzt voraus, dass Sie das Paket powermanagement-interface (nicht getestet) installieren.

sudo apt-get install powermanagement-interface

Ich habe auch die Befehle gefunden sudo pm-suspendund sudo pm-hibernatean meinem Netbook gearbeitet.


22
pm-suspend und pm-hibernate funktionieren bei mir und es ist ganz einfach. Benötigt sudo, aber das ist in Ordnung. (Fand pmi Idee vor, aber die Installation eines Pakets zur Verwendung von Suspend ist gut schlecht ...)
user1034

1
Beachten Sie, dass Sie apt-get install powermanagement-interfacepmi ausführen müssen.
Nealmcb

1
Am 11.10 funktioniert nur pm- *, auch mit hinzugefügtem Powermanagament-Interface
Omegafil 13.02.12

1
funktioniert nicht mit meinem Ubuntu 12.10. nachapt-get install powermanagement-interface
irgendwann am

1
neue Methode zu sehen ist nun gebrochen unix.stackexchange.com/questions/153099/...
ijk

188

Die gnome-freundliche Methode ist die Verwendung von dbus.

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

Dieser Befehl hat zwei Vorteile pm-suspend.

  1. Es wird Ihren Bildschirm (nach dem Fortsetzen) sperren, wenn Sie diese Option in gnome ausgewählt haben.

  2. Es ist kein Root-Privileg erforderlich, so dass es zum Beispiel einfach ist, es als Tastaturkürzel hinzuzufügen.

Wie in den Kommentaren erwähnt, wird durch Austauschen der Suspendin der letzten Zeile zum HibernateErstellen eines Ruhezustandsbefehls Folgendes ausgeführt:

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

Wenn der Ruhezustand ausgelöst wird, Error org.freedesktop.UPower.GeneralError: not authorizedkann der Benutzer möglicherweise nicht in den Ruhezustand wechseln. Bearbeiten oder erstellen Sie es /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaso , dass es den folgenden Abschnitt enthält: (Quelle)

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

Dies wurde unter UbuntuGnome 14.04 getestet .

Hinweis: Dies entspricht im Wesentlichen der Antwort von qbi, wurde jedoch so aktualisiert, dass sie für neuere Versionen von Ubuntu sowie für den Ruhezustand geeignet ist.


15
Ihre Antwort sollte wirklich an erster Stelle stehen. Es handelt sich um eine nicht-root-fähige Methode, mit der keine Pakete installiert werden müssen. Mögen!
Turbo

11
Um Hibernate, können Sie einfach die letzte Zeile ersetzen durchorg.freedesktop.UPower.Hibernate
Sheharyar

2
auf meinem 13.10 funktioniert es. jedoch wird der Bildschirm nicht auf Wiederaufnahme gesperrt, auch wenn in „Sicherheit und Datenschutz“, „Erfordern mein Passwort , wenn aus dem Suspend Erwachen“ wird aktiviert.
Andreas-h

3
Hat bei mir nicht funktioniert (Gnome 3.12, Ubuntu 14.04). Die [UPower.Suspend] -Schnittstelle wurde laut bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui Ambros

4
Suspend-Schnittstelle wurde in Logind verschoben; askubuntu.com/questions/652978
Khurshid Alam

58

Englisch

Wenn Sie möchten, dass Ihr Computer in einer Stunde angehalten wird, weil Sie zu Bett gehen und Ihren Lieblingsradiosender hören möchten, öffnen Sie das Terminal und geben Sie Folgendes ein:

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

und Ihr Computer wird in 1 Stunde einschlafen. Wenn Sie aufwachen, hat es Ihre offenen Bilder und all Ihre Sachen behalten.

Sie können 1hdurch das ersetzen, was Sie möchten: hStunden, mMinuten, sSekunden, dTage.

Gute Nacht!

Français

Sie haben die Möglichkeit, Ihre Wahl zu treffen, wenn Sie einen Termin für eine Sendung mit Radioempfang oder eine Sendung mit folgenden Angaben haben:

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

et votre ordinateur s'endormira dans une heure. Sie können die Aura konservieren und mehr über Anwendungen erfahren.

Vous pouvez remplacer 1hpar ce que vous voulez: hpour les heures, mles Minuten gießen, spour les secondes, dles jours gießen.

Gute Nacht!

Español

Sie können den Suspender für den Computer und die Porque-Quieres für die Radio-Favoriten-Funktion auswählen und wie folgt vorgehen:

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.

Puedes reemplazar 1hpor lo que desees: hpara horas, mpara minutos, spara segundos, dpara días.

Gute Nacht!


Das ist mein Anwendungsfall, den ich suche! AFIK pm- * kann ohne Superuser-Berechtigungen ausgeführt werden
ruX

31

Für Ubuntu 12.04 LTS und Ubuntu 13.04

So erhalten Sie den Ruhezustand:

sudo pm-hibernate

Suspend erhalten:

sudo pm-suspend

"sudo pm-suspend" funktioniert nicht bei 13 mint mate :(
rsjethani

Ja, ich denke, das Paket wurde nicht installiert. Suchen Sie nach diesen Paketen in synaptic.
Donnerstag,

2
Der Nachteil dieser Methode ist, dass pm-suspend Ihre Sitzung NICHT blockiert, wenn Sie die GUI verwenden. Dies kann unsicher sein.
Raúl Salinas-Monteagudo,

1
Es funktioniert auch auf Ubuntu 15.10.
Searene

1
arbeitet an 14.04 lts
Vitaly Zdanevich

22

Sie können die Datei verwenden /sys/power/state, um dies zu tun. Finden Sie zuerst heraus, welche Zustände unterstützt werden:

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

oder über dbus:

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

Entsprechend diesem Eintrag im Launchpad wurde die obige Oberfläche entfernt. In Ubuntu würde es also nicht mehr funktionieren.


Erste Idee gibt mir: "Bash: Echo: Schreibfehler: Ungültiges Argument" Dbus-Idee gibt Ausgabe: "Fehler org.freedesktop.DBus.Error.UnknownMethod: Methode" Suspend "mit Signatur" "auf Schnittstelle" org.gnome.PowerManager " existiert nicht "
user1034

Ich habe dem /sys/power/state-thing eine kleine Erklärung hinzugefügt. Außerdem wurde die dbus-Methode von Ubuntu entfernt, so dass sie nicht mehr funktioniert.
qbi

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

3
Das funktioniert super. Für Benutzer, die Probleme mit dieser Methode haben, wenn sudo verwendet wird, wird die "Pipe to File", auch bekannt als ">", in Ihrer aktuellen Shell ausgeführt, sodass sie keine Superuser-Berechtigungen erhält, während Ihr Echo dies tat. Sie müssen sudo -izuerst verwenden, oder Pipe, um dies zu sudo teemögen:echo mem | sudo tee /sys/power/state
RandomInsano

12

Um ein System (14.04) über die Befehlszeile (oder die Tastenkombination) herunterzufahren, verwenden Sie:

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

Ich habe das durch Herumspielen mit gdbus herausgefunden, das die verfügbaren Schnittstellen auflisten kann:

So listen Sie die im Bus verfügbaren Dienste auf:

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

So finden Sie die Methoden:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse

12

Seit 15.04 ist systemD das Standard-Init-System, daher muss ein neuer Befehl verwendet werden:

systemctl suspend

Ich benutze Xubuntu 15.04. Der Befehl systemctl suspendhält den Computer an, führt jedoch nicht dazu, dass der Bildschirm gesperrt wird, obwohl ich das Kontrollkästchen "Bildschirm sperren, wenn das System in den Energiesparmodus wechselt" unter "Einstellungen" -> "Energie-Manager" -> "Sicherheit" aktiviert habe. Hat jemand eine Idee warum?
Teemu Leisti

Ich habe ein Upgrade auf Xubuntu 16.04 durchgeführt. Der Befehl hält systemctl suspendden Computer weiterhin an. Jetzt wird der Bildschirm auch gesperrt, wenn und nur dann, wenn das Kontrollkästchen "Bildschirm sperren, wenn das System in den Energiesparmodus wechselt" unter "Einstellungen" -> "Power Manager" -> "Sicherheit" aktiviert ist.
Teemu Leisti

8

Adam Paetznicks dbus-send-Antwort funktionierte nicht so, wie ich es mir bei lucid vorgestellt hatte. Die Maschine ist entsperrt aufgewacht, obwohl der Gnome-Power-Manager so eingestellt ist, dass der Bildschirm beim Aufwecken gesperrt wird. Ich möchte, dass der Bildschirm beim Aufwecken gesperrt wird, und habe festgestellt, dass dies folgendermaßen funktioniert:

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

Ich stelle mir vor, das hängt nicht von der Gnomenkonfiguration ab, aber ich habe das nicht getestet.


Nett. Oder xscreensaver-command --lockwie es der Fall sein mag.
Behandle deine Mods gut

3

Neue Schnittstelle

… Was in 15.10 Wily und möglicherweise Utopic and Vivid funktioniert.

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

Dies erfordert im Gegensatz zum pm-suspendBefehl hilfreich kein sudo .


Mein XPS 13 9350 mit Debian / Gnome hatte beim Schließen des Deckels Probleme mit dem Suspend / Hibernate. Nachdem dieser Befehl (und das Äquivalent für den Ruhezustand) ausgeführt wurde, wurde er erfolgreich in den Ruhezustand versetzt (und in den Ruhezustand versetzt). Jetzt funktioniert das Schließen und Öffnen des Deckels wie erwartet!
Victor Schröder

1

So versetzen Sie einen Remote-Computer über ssh in den Standby-Modus:

ssh -t 192.168.1.4 'sudo nohup &> / dev / null bash -c "(schlaf 1; echo -n mem> / sys / power / state) &"
x@192.168.1.4s Passwort: 
[sudo] Passwort für x: 
Verbindung zu 192.168.1.4 geschlossen.

/ sys / power / state funktioniert in Ubuntu 13.10. pmi gibt einen Dbus-Fehler aus.


0

Persönlich habe ich mit der PMI-Methode experimentiert. Allerdings, wenn ich das versuchte, bekam ich eine Fehlermeldung: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Allerdings gibt es eine Abhilfe in dem 3. Kommentar von diesem Bug - Report , der für mich gearbeitet zu haben scheint (ich verwende Ubuntu 13.03).


Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
fossfreedom

0

Update für alle, die wie ich noch mit KDE / Ubuntu 14.04 arbeiten. Verwendung sperren und Verwendung qdbusaussetzen dbus. Voller Befehl:

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

Um in den Ruhezustand zu wechseln, dh statt auf RAM auf Festplatte zu schalten, ersetzen Sie 'Suspend' am Ende des Befehls durch 'Hibernate'.

xscreensaver-command -lockWenn Sie den Bildschirm nur sperren möchten, ohne ihn anzuhalten, wird dies funktionieren, WENN Sie nur 1 Bindestrich für die Option '-lock' eingeben und nur, wenn der Bildschirmschoner ausgeführt wird. Eigentlich kein sehr nützlicher Befehl. Die Verwendung i3lockist einfacher, aber dann erhalten Sie nicht wie bei der Verwendung ein ordentliches Anmeldedialogfeld, mit dem Sie wieder arbeiten können qdbus.


0

Folgendes funktioniert für mich am 16.04 (mit Gnome Desktop):

gnome-screensaver-command --lock && compsleep

Ich habe es auch als benutzerdefiniertes Tastenkürzel über das Gnome-Einstellungsfeld als Tasten "Shift-Super-X" installiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.