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

Réponses:

312

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' systemctlappel doit être utilisé (voir Commande de suspension dans Ubuntu 16.04 )

systemctl suspend

et

systemctl hibernate

Nouvelle méthode

Voir la réponse d’Adam Paetznick sur cette page concernant l’utilisation de dbus . Idéalement, vous créeriez un ~/bin/suspendraccourci / script facilitant l’utilisation de cette action.

Pour une utilisation sur ssh, vous devez modifier les règles du kit de stratégie comme indiqué 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 paquet powermanagement-interface (non testé).

sudo apt-get install powermanagement-interface

J'ai aussi trouvé les commandes sudo pm-suspendet sudo pm-hibernatetravailler sur mon netbook.

txwikinger
la source
21
pm-suspend et pm-hibernate fonctionnent pour moi et c'est facile. Nécessite sudo mais c'est bon. (J'ai trouvé l'idée pmi avant, mais l'installation d'un paquet pour utiliser suspend est bien mauvaise ...)
user1034
1
Notez que vous devez apt-get install powermanagement-interfaceexécuter pmi.
nealmcb
1
Le 11.10, seulement pm- * fonctionne, également avec l'interface powermanagament ajoutée
Omegafil le
1
ne fonctionne pas avec mon Ubuntu 12.10. aprèsapt-get install powermanagement-interface
somethis
1
nouvelle méthode est maintenant cassé voir unix.stackexchange.com/questions/153099/…
ijk
188

La manière la plus simple d’utiliser gnome 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 pm-suspend.

  1. Il va verrouiller votre écran (lors de la reprise) si cette option est sélectionnée 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 Suspendde la dernière ligne pour Hibernatecréer une commande de veille prolongée:

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

Si le mode hibernation est activé, Error org.freedesktop.UPower.GeneralError: not authorizedil se peut que votre utilisateur ne soit pas autorisé à passer en veille prolongée. Editez ou créez /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklapour 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 identique à la réponse de qbi, mais mis à jour pour fonctionner pour les versions plus récentes d'Ubuntu, ainsi que pour inclure hibernate.

Adam Paetznick
la source
15
Votre réponse devrait vraiment être la première. C'est une manière non-root de créer un gnome sans paquets à installer. Comme!
turbo
11
Pour Hibernate, vous pouvez simplement remplacer la dernière ligne parorg.freedesktop.UPower.Hibernate
Sheharyar
2
sur mon 13.10 cela fonctionne. toutefois, l'écran n'est pas verrouillé lors de la reprise, même si dans "Sécurité et confidentialité", l'option "Exiger mon mot de passe à la sortie de Suspend" est activée.
andreas-h
3
Cela n'a pas fonctionné pour moi (Gnome 3.12, Ubuntu 14.04). Semble le [UPower.Suspend] interface a été retirée, selon bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/...
Gui Ambros
4
L'interface de suspension a été déplacée dans logind askubuntu.com/questions/652978
Khurshid Alam
58

Anglais

Si vous voulez que votre ordinateur soit suspendu au bout d'une heure parce que vous voulez 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 1hpar ce que vous voulez: hpendant des heures, mdes minutes, sdes secondes, ddes 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 to you you 1h: hpour les heures, mpour les minutes, spour les secondes, dpour les jours.

Bonne nuit!

Español

Si vous êtes suspendu à l'ordinateur et que votre ordinateur portable est un lecteur de radio préféré, vous devez avoir un solo solo dans le terminal et y inscrire:

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 1hpor lo que desees: hpara hora , mpara minutos, spara segundos, dpara días.

Bonne nuit!

greg
la source
C'est mon cas d'utilisation que je cherche! AFIK pm- * peut être exécuté sans les autorisations du superutilisateur
ruX le
31

Pour Ubuntu 12.04 LTS et Ubuntu 13.04

Pour passer en veille prolongée:

sudo pm-hibernate

Pour obtenir une suspension:

sudo pm-suspend
rɑːdʒɑ
la source
"sudo pm-suspend" ne fonctionne pas à la menthe 13 mate :(
rsjethani
Oui, je pense que ce paquet n'a pas été installé. recherchez ces paquets dans synaptic.
R12d12
2
L'inconvénient de cette méthode est que si vous utilisez l'interface graphique, pm-suspend NE bloquera PAS votre session, qui peut ne pas être sécurisée.
Raúl Salinas-Monteagudo
1
Cela fonctionne aussi sur Ubuntu 15.10.
Searene
1
fonctionne sur 14,04 litres
Vitaly Zdanevich
22

Vous pouvez utiliser le fichier /sys/power/statepour 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_méthode --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.

qbi
la source
La première idée me donne: "bash: echo: erreur d'écriture: argument incorrect" L'idée de Dbus donne le résultat: "Erreur org.freedesktop.DBus.Error.UnknownMethod: Méthode" Suspend "avec la signature" "sur l'interface" org.gnome.PowerManager " n'existe pas "
user1034
J'ai ajouté une petite explication à la /sys/power/statechose. De plus, la méthode dbus a été supprimée d’Ubuntu et ne fonctionnera donc plus.
Qbi
$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro
3
Cela fonctionne très bien. Pour les personnes qui rencontrent des problèmes avec cette méthode lors de l’utilisation de sudo, le "pipe to file", également appelé ">", est exécuté dans votre shell actuel. Il ne dispose donc pas des privilèges de super utilisateur, contrairement à votre écho. Vous aurez besoin d'utiliser d' sudo -iabord, ou de pipe pour sudo teeaimer ainsi:echo mem | sudo tee /sys/power/state
RandomInsano
12

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
Simonltwick
la source
12

depuis 15.04, systemD étant le système init standard, une nouvelle commande doit être utilisée:

systemctl suspend
k1l
la source
J'utilise Xubuntu 15.04. La commande systemctl suspendsuspend l'ordinateur, mais elle ne verrouille pas l'écran, même si j'ai coché la case "Verrouiller l'écran lorsque le système se met en veille" dans Paramètres -> Gestionnaire d'alimentation -> Sécurité. Quelqu'un a une idée pourquoi?
Teemu Leisti
Je suis passé à Xubuntu 16.04. La commande systemctl suspendsuspend toujours l'ordinateur. Désormais, cela provoque également le verrouillage de l'écran, si et seulement si la case à cocher "Verrouiller l'écran lorsque le système se met en veille" dans Paramètres -> Gestionnaire d'alimentation -> Sécurité est cochée.
Teemu Leisti
8

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, bien que gnome-power-manager soit 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.

Aryeh Leib Taurog
la source
Agréable. Ou xscreensaver-command --lockselon le cas.
Phyzome
3

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 pm-suspendcommande.

Gringo Suave
la source
Mon XPS 13 9350 avec Debian / Gnome présentait des problèmes de suspension / veille prolongée lors de la fermeture du couvercle. Après avoir exécuté cette commande (et l’équivalent en mode hibernation), il est entré avec succès en suspension (et en hibernation) et maintenant, la fermeture et l’ouverture du couvercle ont fonctionné comme prévu!
Victor Schröder
1

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) &"'
Le mot de passe de [email protected]: 
[sudo] mot de passe pour x: 
Connexion à 192.168.1.4 fermée.

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

utilisateur229115
la source
0

Personnellement, j'ai expérimenté la méthode pmi. Cependant, quand j'ai essayé, je reçu un message d'erreur: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Cependant, il y a une solution de contournement dans le 3ème commentaire de ce rapport de bogue , qui semble avoir fonctionné pour moi (j'utilise Ubuntu 13.03).

TSJNachos117
la source
Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
fossfreedom
0

Mise à jour pour ceux qui, comme moi, travaillent toujours sur les systèmes KDE / Ubuntu 14.04. Pour verrouiller l'utilisation qdbuset suspendre l'utilisation 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 -lockcela 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. L’utilisation i3lockest plus facile, mais vous n’obtiendrez pas une boîte de dialogue de connexion précise pour vous remettre au travail, comme vous le feriez lors de l’utilisation qdbus.

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

christopherbalz
la source