web-dev-qa-db-fra.com

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

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

347
user1034

Traditionnellement, Ubuntu prenait en charge une méthode assez brutale de suspension et de veille prolongée. Ni s'intégrerait bien avec d'autres applications et parfois même ne pas travailler sur certaines machines. La nouvelle méthode ne nécessite pas de racine et informe toutes les applications à l'écoute des événements d'alimentation.

Méthode Systemd

À partir de Ubuntu 16.04, l'appel systemctl doit être utilisé (voir commande Suspend 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 raccourci/script ~/bin/suspend qui facilite l'utilisation de cette action.

Pour une utilisation sur ssh, vous devez modifier les règles du kit de règles comme indiqué par Peter V. Mørch

Ancienne méthode

Selon le buntu Forum , vous pouvez utiliser les commandes suivantes:

pmi action suspend

et

pmi action hibernate

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

Sudo apt-get install powermanagement-interface

J'ai également trouvé les commandes Sudo pm-suspend et Sudo pm-hibernate pour fonctionner sur mon netbook.

294
txwikinger

Le moyen le plus simple pour les gnomes est d'utiliser dbus.

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

Cette commande présente deux avantages par rapport à pm-suspend.

  1. Il va verrouiller 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 sous forme de raccourci clavier, par exemple.

Comme mentionné dans les commentaires, l'échange de Suspend dans la dernière ligne en Hibernate crée une commande hibernate:

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

Si le mode veille prolongée génère Error org.freedesktop.UPower.GeneralError: not authorized, il se peut que votre utilisateur ne soit pas autorisé à mettre en veille prolongée. Editez 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 buntuGnome 14.04 .

Note: Ceci est fondamentalement identique à la réponse de qbi, mais mis à jour pour fonctionner pour les versions plus récentes d'Ubuntu, ainsi que pour inclure hibernate.

187
Adam Paetznick

Anglais

Si vous souhaitez que votre ordinateur suspende au bout d'une heure parce que vous souhaitez aller au lit en écoutant votre station de radio préférée, ouvrez un terminal et tapez:

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

et votre ordinateur s’endormira au bout d’une heure. À votre réveil, vos images ouvertes et toutes vos affaires seront conservées.

Vous pouvez remplacer 1h par ce que vous voulez: hpendant des heures, mvariable__ pour des minutes, spour secondes, dnom____ jours.

Bonne nuit!

English

You are like to you your computer to mette in veille in a time parce que vous voulez vous connecter à votre radio préférée, ouvrez Terminal et tapez:

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

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

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

Bonne nuit!

Español

Si vous êtes suspendu à l'ordinateur et que vous portez votre voix à la radio, c'est-à-dire que vous préférez écouter de la musique, que ce soit en solo ou à la volée:

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

vous êtes ici pour dormir dans 1 heure. Droits de la personne, toutes les informations sur les personnes et les femmes.

Puedes reemplazar 1h by our que desees: hpour horas, mpour minutos, spour segundos, dpour días.

Bonne nuit!

57
greg

Pour buntu 12.04 LTS et buntu 13.04

Pour passer en veille prolongée:

Sudo pm-hibernate

Pour obtenir une suspension:

Sudo pm-suspend
31
rɑːdʒɑ

Vous pouvez utiliser le fichier /sys/power/state pour le faire. D'abord, découvrez quels états sont supportés:

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:

# Suspend dbus-send --session --dest = org.gnome.PowerManager\--type = appel_methode --print-reply --reply-timeout = 2000 \/org/gnome/PowerManager org.gnome.PowerManager.Suspend # Hibernate dbus-send --session --dest = org.gnome.PowerManager\--type = appel_méthode --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, cela ne fonctionnerait plus dans Ubuntu.

22
qbi

Pour arrêter un système (14.04) à partir de la ligne de commande (ou d'un 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
12
simonltwick

depuis 15.04 systemD est le système init standard. Il faut donc utiliser une nouvelle commande:

systemctl suspend
11
k1l

La réponse dbus-send d'Adam Paetznick n'a pas fonctionné comme prévu pour moi sur lucid; la machine s’est réveillée non verrouillée, même si gnome-power-manager est configuré pour verrouiller l’écran au réveil. Je veux que l'écran soit verrouillé au réveil et j'ai constaté que ce qui suit fait cela:

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

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

8

Nouvelle interface

… Qui fonctionne dans 15.10 Wily, et peut-être utopique et vif.

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

Heureusement, cela ne nécessite pas Sudo, contrairement à la commande pm-suspend.

3
Gringo Suave

Voici comment mettre une machine distante en veille sur ssh:

 ssh -t 192.168.1.4 'Sudo Nohup &>/dev/null bash -c "(sommeil 1; echo-n mem>/sys/power/state) &"' 
 x @ Le mot de passe de 192.168.1.4: 
 [Sudo] mot de passe pour x: 
 La connexion à 192.168.1.4 est fermée. 

/ sys/power/state fonctionne dans Ubuntu 13.10. pmi donne une erreur Dbus.

1
user229115

Mise à jour pour ceux qui, comme moi, travaillent toujours sur les systèmes KDE/Ubuntu 14.04. Pour verrouiller, utilisez qdbus et pour suspendre, utilisez 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 un disque dur au lieu de la RAM, remplacez "Suspendre" à la fin de la commande par "Hibernate".

Pour verrouiller simplement l'écran sans suspension, xscreensaver-command -lock fonctionnera, SI vous ne tapez qu'un seul trait d'union pour l'option '-lock', et uniquement si l'économiseur d'écran est en cours d'exécution. En fait pas une commande très utile. Utiliser i3lock est plus facile, mais vous n'obtiendrez pas une boîte de dialogue de connexion soignée pour retourner au travail, comme vous le feriez lorsque vous utiliserez qdbus.

0
LinuxRev

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 du Gnome sous la forme de touches "Shift-Super-X".

0
christopherbalz

Personnellement, j'ai expérimenté la méthode pmi. Cependant, lorsque j'ai essayé cela, 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 le ème commentaire de ce rapport de bogue , qui semble avoir fonctionné pour moi (j'utilise Ubuntu 13.03).

0
TSJNachos117