Comment puis-je suspendre / hiberner à partir de la ligne de commande?

306

Comment puis-je suspendre ou mettre en veille mon ordinateur portable en utilisant la ligne de commande, sans installer de logiciel supplémentaire?

    
posée user1034 09.08.2010 - 22:24
la source

13 réponses

256

Traditionnellement, Ubuntu supportait une méthode assez directe de suspension et d'hibernation. Ni s'intègrent bien avec d'autres applications et parfois même ne fonctionnent pas sur certaines machines. La nouvelle méthode ne nécessite pas root et avertit toutes les applications à l'écoute des événements d'alimentation.

Méthode Systemd

À partir d’Ubuntu 16.04, systemctl call doit être utilisé (voir Suspendre la commande dans Ubuntu 16.04 )

systemctl suspend

et

systemctl hibernate

Nouvelle méthode

Voir la réponse ici sur cette page d’Adam Paetznick concernant l’utilisation de dbus . Idéalement, vous créeriez un script / raccourci ~/bin/suspend qui facilite l'utilisation de cette action.

Pour une utilisation sur ssh, vous devez modifier les règles du policykit décrites par Peter V. Mørch

Ancienne méthode

Selon le forum Ubuntu , vous pouvez utiliser les commandes suivantes:

pmi action suspend

et

pmi action hibernate

Cela nécessite que vous installiez le package powermanagement-interface (non testé).

sudo apt-get install powermanagement-interface

J'ai aussi trouvé les commandes sudo pm-suspend et sudo pm-hibernate pour travailler sur mon netbook.

    
réponse donnée txwikinger 09.08.2010 - 22:32
la source
186

La méthode conviviale consiste à utiliser dbus.

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

Cette commande présente deux avantages sur pm-suspend .

  1. Cela verrouille votre écran (lors de la reprise) si vous avez sélectionné cette option dans gnome.

  2. Il ne nécessite pas de privilège root, il est donc facile de l’ajouter comme raccourci clavier, par exemple.

Comme mentionné dans les commentaires échangeant le Suspend dans la dernière ligne à Hibernate crée une commande d'hibernation:

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

Si l'hibernation génère Error org.freedesktop.UPower.GeneralError: not authorized , votre utilisateur risque de ne pas être en veille prolongée. Modifiez ou créez /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla pour qu'il contienne la section suivante: (source)

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

Ceci a été testé sur UbuntuGnome 14.04 .

Note: Ceci est fondamentalement la même que la réponse de qbi, mais mise à jour pour fonctionner avec les nouvelles versions d'Ubuntu et avec l'hibernation.

    
réponse donnée Adam Paetznick 03.05.2012 - 22:40
la source
50

anglais

Si vous voulez que votre ordinateur soit suspendu en une heure parce que vous voulez aller au lit en écoutant votre station de radio préférée, ouvrez le terminal et tapez:

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

et votre ordinateur s’endormira dans 1 heure. Lorsque vous vous réveillerez, vos images ouvertes et toutes vos affaires auront été conservées.

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!

Français

Si vous voulez juste que votre ordinateur se mette en veille dans une heure parce que vous voulez vous endormir en écoutant votre radio préférée, ouvrez Terminal et répondez:

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

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

Vous pouvez remplacer 1h par 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 une heure de départ dans une chambre de radio ou de radio préférée, tan solo abre el terminal y escribe:

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

Vous pouvez lire et écrire des commentaires en 1 heure. Cuando despiertes, allí habrán quedado abiertas tus imágenes y todas tus cosas.

Puedes reemplazar 1h par que: h para horas, m des minutes,% co% de sgundos,% co% de jours.

¡Buenas noches!

    
réponse donnée greg 18.01.2012 - 09:31
la source
30

Pour Ubuntu 12.04 LTS et Ubuntu 13.04

Pour obtenir une veille prolongée:

sudo pm-hibernate

Pour obtenir une suspension:

sudo pm-suspend
    
réponse donnée Ten-Coin 14.09.2012 - 15:45
la source
22

Vous pouvez utiliser le fichier /sys/power/state pour ce faire. Découvrez d'abord quels sont les états pris en charge:

[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

ou via dbus:

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

Selon cette entrée dans le tableau de bord , l’interface ci-dessus a été supprimée. . Donc, ça ne marcherait plus dans Ubuntu.

    
réponse donnée qbi 09.08.2010 - 22:35
la source
11

Pour arrêter un système (14.04) à partir de la ligne de commande (ou du raccourci clavier), utilisez:

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

J'ai découvert cela en jouant avec gdbus qui peut lister les interfaces disponibles:

Pour lister les services disponibles sur le bus:

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

Pour trouver les méthodes:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
    
réponse donnée simonltwick 07.08.2014 - 17:08
la source
8
La réponse dbus-send d’Adam Paetznick n’a pas fonctionné comme je le pensais sur lucide; la machine s'est réveillée déverrouillée, même si le gnome-power-manager est configuré pour verrouiller l'écran au réveil. Je veux que l’écran soit verrouillé au réveil et que ce qui suit est le suivant:

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

J'imagine que cela ne dépend pas de la configuration de gnome, mais je n'ai pas testé cela.

    
réponse donnée Aryeh Leib Taurog 15.05.2012 - 18:07
la source
8

depuis que 15.04 systemD est le système d’initialisation standard, il faut donc utiliser une nouvelle commande:

systemctl suspend
    
réponse donnée k1l 27.11.2015 - 14:36
la source
2

Nouvelle interface

... qui fonctionne dans 15.10 Wily, et peut-être Utopic and Vivid.

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

Cela n’a pas besoin de sudo, contrairement à la commande pm-suspend .

    
réponse donnée Gringo Suave 18.11.2015 - 19:09
la source
1

Voici comment mettre une machine distante en veille sur 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 fonctionne dans Ubuntu 13.10. pmi donne une erreur Dbus.

    
réponse donnée user229115 27.12.2013 - 06:09
la source
0

Personnellement, j'ai expérimenté la méthode pmi. Cependant, lorsque j'ai essayé ceci, j'ai reçu un message d'erreur: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1 . Cependant, il existe une solution de contournement dans la 3ème commentaire de < a href="https://bugs.launchpad.net/ubuntu/+source/powermanagement-interface/+bug/1176829"> ce rapport de bogue , qui semble avoir fonctionné pour moi (j'utilise Ubuntu 13.03).

    
réponse donnée TSJNachos117 31.08.2013 - 07:11
la source
0

Mise à jour pour ceux qui, comme moi, continuent de travailler sur les systèmes KDE / Ubuntu 14.04. Pour verrouiller l'utilisation de qdbus et suspendre l'utilisation de dbus . Commande complète:

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

Pour mettre en veille prolongée, c'est-à-dire suspendre sur le disque dur au lieu de la RAM, remplacez «Suspendre» à la fin de la commande par «Hibernate».

Pour simplement verrouiller l'écran sans suspendre, xscreensaver-command -lock fonctionnera, SI vous ne tapez qu'un seul tiret pour l'option '-lock', et seulement si l'économiseur d'écran est en cours d'exécution. En fait, ce n'est pas une commande très utile. Utiliser i3lock est plus facile, mais vous n'aurez pas de boîte de dialogue de connexion nette pour vous remettre au travail, comme vous le feriez avec qdbus .

    
réponse donnée LinuxRev 26.05.2017 - 14:28
la source
0

Ce qui suit fonctionne pour moi le 16.04 (avec le bureau Gnome):

gnome-screensaver-command --lock && compsleep

Je l’ai également installé en tant que raccourci clavier personnalisé via le panneau de configuration Gnome en tant que touches "Shift-Super-X".

    
réponse donnée christopherbalz 28.05.2018 - 17:16
la source

Lire d'autres questions sur les étiquettes