
L'hibernation et le sommeil s'adressent à la fois aux ours et aux PC !! Si votre objectif est de consommer moins d'électricité, ce guide va vous montrer comment faire un petit script pour hiberner, suspendre ou geler votre ordinateur en toute sécurité à partir de la ligne de commande.
Hibernation et Dormir fr Linux
L'hibernation d'un ordinateur enregistrera le contenu actuel de la mémoire de l'ordinateur (les RAM mémoire sur votre ordinateur) sur disque, surtout à l'espace d'échange. Après cela, l'alimentation sera coupée automatiquement par un appel au matériel, et quand je redémarre l'ordinateur, le contenu de la mémoire sera lu de l'espace d'échange vers la mémoire principale et vous pouvez continuer à utiliser l'ordinateur exactement au point où il a hiberné. cette.
Il y a un défi quand il s'agit d'hiberner une instance Linux à l'aide de la ligne de commande: vous aurez besoin d'un espace de swap assez grand pour encapsuler toute la taille de la RAM et, potentiellement, quelque chose en plus pour l'utilisation normale de l'échange simultané par les applications. Pour cela, si tu as 8 Go de RAM dans votre système, il est possible que vous souhaitiez allouer un espace d'échange de 16 une 20 Go pour s'assurer qu'il y a assez. Si vous voulez apprendre à faire cela, voir notre guide Comment créer et activer un fichier d'échange sur la ligne de commande Linux.
Un état de repos est très équivalent, même si l'énergie ne sera pas complètement supprimée. Sa mémoire, et parfois votre CPU, restera sous tension de sorte que lorsque vous revenez à la machine, et par exemple appuyez sur la barre d'espace ou cliquez sur un bouton de la souris (comme événements déclencheurs), l'ordinateur recommencera à fonctionner au point où vous l'avez mis en veille. En général, ces événements déclencheurs peuvent être configurés à partir du BIOS.
En général, le BIOS de votre ordinateur peut être entré tout au long du démarrage de votre ordinateur, tant qu'il n'a pas été hiberné ou mis en sommeil, mais il était complètement éteint la dernière fois que vous l'avez utilisé. Souvent, peut être entré en appuyant sur une touche comme F2 ou DEL (ou toute autre touche affichée à l'écran ou disponible dans le manuel du fabricant de la carte mère) tout au long du démarrage précoce de votre système (dès qu'un texte s'affiche à l'écran après avoir appuyé sur le bouton d'alimentation).
En général, Il existe trois niveaux de veille à économie d'énergie basés sur le noyau disponibles sous Linux, fourni par le système d'exploitation (ou plus précisément le noyau).
Ces niveaux sont intégrés au noyau et leur disponibilité dépend du système d'exploitation utilisé.. Les niveaux sont Suspendre au ralenti (bien nommé s2idle O Geler), Suspendre en mémoire (mem ou plus correctement Profond) et Suspendre sur le disque (disco). Votre système peut également prendre en charge un mode veille (standby
O shallow
). Nous en apprendrons bientôt plus sur la façon de savoir quels niveaux sont disponibles sur votre système et comment les contrôler !!
Les ordinateurs de bureau ne peuvent-ils pas entrer en veille prolongée ou en veille prolongée ??
avec curiosité, tandis que la suspension de la mémoire et la suspension du disque sont généralement disponibles dans le noyau et prises en charge par le système, le système d'exploitation s'exécutant sur le noyau, avec une certaine régularité, ne présente pas ces options dans son interface graphique / bureau.
Par exemple, dans une installation récente de Mint 20 (un système d'exploitation moderne basé sur Ubuntu), cloné dans un système moderne, les options suivantes étaient disponibles en appuyant sur le bouton d'alimentation dans l'interface graphique / Bureau Xcfe:
Fermer la session, redémarrage, arrêter et changer d'utilisateur, mais non Dormir, Appuyer non Hiberner! Pouvoir encore suspendre ce système en mémoire ou sur disque serait un grand pas en avant., même s'il faut appeler le terminal pour le faire. La section suivante expliquera comment procéder., mais regardons d'abord les alternatives disponibles sur votre système et ce qu'elles signifient.
Si tu cours cat /sys/power/state
sur votre ligne de commande, vous verrez quelque chose d'équivalent à ce qui suit:
Dans ce système particulier, les trois options principales (freeze, mem and disk
) son compatibles. Vous pouvez également voir standby
ou votre système.
Les freeze
L'option, une fois réglé, lancera un état de veille léger uniquement logiciel pour votre système. L'espace utilisateur Linux va geler (d'où le terme) et tous les appareils E / S sera mis dans un état de faible consommation d'énergie. Bien que cette option et ce statut soient toujours pris en charge et limitent la consommation d'énergie, est le moyen le plus léger d'arrêter votre machine. Si vous n'avez pas d'autres options disponibles, cela peut encore économiser sur les factures d'électricité, même si pas autant que d'arrêter le système.
Pour cela, la question pour cette option / l'état devient sur la conscience (laisser le système dans un état prêt à l'emploi et à gauche et économiser un peu au lieu de l'arrêter, mais devoir rouvrir des applications et économiser plus). Espérons que votre système d'exploitation et votre matériel soient également compatibles avec d'autres états. Si ce n'est pas comme ça, envisager de mettre à jour ou de changer votre système d'exploitation et / ou mettez à jour le micrologiciel de votre BIOS et d'autres périphériques matériels vers leurs dernières versions. Changer les alternatives associées à l'alimentation dans le BIOS peut également aider.
Les mem
L'option, une fois réglé, iniciará un Suspend-To-Idle, qui est identique à Geler option, ou suspendre à la RAM, où tout dans le système est mis dans un état de faible consommation, à l'exception de la mémoire. L'option utilisée (Suspend-To-Idle o Suspend-To-RAM) dépend de la configuration du /sys/power/mem_sleep
Record. Vous pouvez examiner les différents modes de ce fichier simplement en exécutant cat /sys/power/mem_sleep
dans la ligne de commande du terminal.
En termes générales, Je m'attendrais à ce que cette option soit par défaut deep
par défaut (comme indiqué [code]
) sur tous les systèmes d'exploitation Linux, simplement parce que quand on règle le /sys/power/state
option une mem
, on s'attendrait à ce que le système écrive le contenu en mémoire (Autrement dit, Suspend-To-RAM, qui se configure en utilisant deep
au /sys/power/mem_sleep
) au lieu du mode Suspend-To-Idle comme indiqué s2idle
.
Notez également que, pour cela, il est possible d'utiliser deux manières différentes de suspendre au ralenti: soit en écrivant freeze
pour /sys/power/state
, ou écrit s2idle
pour /sys/power/mem_sleep
et plus tard en écrivant mem
pour /sys/power/state
.
Comme tu peux le voir, la terminologie utilisée est un peu confuse et entremêlée en raison de la présence du /sys/power/mem_sleep
Record. Une façon plus simple de faire les choses, et probablement la valeur par défaut sur tous les systèmes d'exploitation Linux modernes, partirait juste /sys/power/mem_sleep
ajusté à deep
et écrit freeze
pour /sys/power/state
a Suspend-To-Idle, et d'écrire mem
pour /sys/power/state
une jarretelle une RAM.
En conclusion, nous avons la dernière option (tant que votre système n'a pas le standby
option, qui est une alternative Power-On-Suspend où le CPU maintient l'alimentation) et qu'est-ce que disk
. Cette option active Suspend-To-Disk. Simplement, est l'option Hibernate que nous avons décrite précédemment, tandis que Suspend-To-Idle ou Suspend-To-RAM peuvent être considérés comme des modes de suspension. Dans ce mode, toutes les données en mémoire sont écrites sur le disque, donc la mémoire peut aussi se libérer de l'énergie: un arrêt complet.
En résumé, le moyen le plus simple de choisir l'une des trois principales options de suspension de puissance est d'avoir (ou partir) /sys/power/mem_sleep
ajusté à deep
, ignorez ce fichier, puis sélectionnez nos modes de veille en utilisant /sys/power/state
solo, et par écrit freeze
(Suspendre au ralenti), mem
(Suspendre une RAM), O disk
(Suspendre sur disque) à ce fichier. Voyons comment faire cela en toute sécurité.
Comment hiberner, dormir ou geler
Nous voulons avoir un script qui hiberne, suspendre ou geler notre ordinateur en toute sécurité. Pourquoi la mention de la sécurité? Bon, réfléchir à la façon d'écrire freeze
pour /sys/power/state
gèlera immédiatement le système et le restaurera exactement dans le même état lorsqu'une touche est enfoncée ou une souris est cliquée (selon que ces options sont activées via la configuration du BIOS). Son bureau, débloqué, est toujours débloqué!
Pour cela, nous avons besoin d'un script qui ne se contente pas d'hiberner, suspendre ou geler notre machine, mais aussi verrouiller notre bureau. La mise en œuvre de cela dépendra du système d'exploitation, ainsi que le bureau / Interface graphique choisie.
Une recherche rapide sur votre moteur de recherche préféré pour [filtrer] bloquer l’interface graphique de la distribution Linux à partir de la ligne de commande où filtrer est un mot / terme de recherche facultatif, Linux Distribution est le nom de votre distribution Linux, et GUI est le nom de votre interface graphique (comme xcfe, par exemple), révéler une ou plusieurs alternatives pour verrouiller votre terminal à partir de la ligne de commande. Pour ce guide, nous utiliserons Linux Mint 20 avec xcfe.
Nous définissons notre hibernate.sh
script de la manière suivante:
sudo sommeil 0.1 # To get auth
xflock4
sleep 3
disque d’écho | sudo tee /sys/power/state # Nécessite un espace de swap suffisant
Dans la première ligne, nous invoquons sudo
pour activer l'authentification au niveau superutilisateur / racine. Nous facturons simplement sleep 0.1
comme commande fictive. Le seul but ici est que les commandes sudo suivantes (comme le dernier) ne nous obligent pas à entrer l'authentification, puisqu'il est un peu difficile de saisir un mot de passe dans un terminal alors que son écran est déjà verrouillé 😉
Après cela, nous invoquons le système d'exploitation et le choix de la commande de verrouillage spécifique au bureau / IHM graphique / gestionnaire de fenêtres, étant xflock4
pour xcfe sur Linux Mint 20. Ensuite, nous avons dormi pendant 3 secondes en utilisant sleep 3
.
En conclusion, on a écrit (à l'aide de echo
) le mot disk
pour /sys/power/state
à l'aide de tee
(regarder man tee
pour plus d’informations si cela vous intéresse, il suffit de lire à partir de l’entrée standard et d’écrire dans un fichier ici) et sudo
. Cela mettra en veille prolongée notre système sur le disque (et éteignez l’ordinateur) toujours que nous avons suffisamment d’espace d’échange comme décrit ci-dessus dans ce guide.
Remplacez ce script par Suspend-To-RAM / La mémoire est maintenant facile: il suffit d’échanger le mot disk
pour mem
.
Nous définissons notre sleep.sh
script de la manière suivante:
sudo sommeil 0.1 # To get auth xflock4 sleep 3 écho profond | sudo tee /sys/power/mem_sleep echo mem | sudo tee /sys/power/state
Nous avons fait le pas supplémentaire d'écrire deep
pour /sys/power/mem_sleep
être du bon côté de l'alimentation et éviter le ralenti pour suspendre. Cela ne fonctionnera que si deep
c'est une vraie alternative dans votre système (n'oubliez pas de courir cat /sys/power/mem_sleep
pour découvrir les modes de sommeil de la mémoire et s'assurer deep
C'est l'un d'eux). Et deep
est déjà sélectionné comme valeur par défaut actuelle, montrera comme [deep]
.
En conclusion, on peut aussi faire un freeze
script de la manière suivante:
sudo sommeil 0.1 # To get auth
xflock4
sleep 3
gel de l'écho | sudo tee /sys/power/state
Notez qu'il n'y a pas d'écriture supplémentaire de s2idle
pour /sys/power/mem_sleep
il faut, depuis le freeze
écrire à /sys/power/state
utiliser automatiquement s2idle
(Suspendre au ralenti). Comme décrit précédemment, nous aurions pu écrire s2idle
pour /sys/power/mem_sleep
puis écrit mem
pour /sys/power/state
à sa place, pour arriver au même résultat, mais cela semble être une façon plus déroutante de le faire.
Les multiples états d'énergie répertoriés dans les scripts précédents, dans l'ordre dans lequel ils sont présentés (disk
> mem
> freeze
) offrent des économies d'énergie du plus haut au plus bas, et des niveaux plus élevés mettront l'ordinateur dans un état de veille plus profond.
Il est également à noter que seul Suspend-To-Disk (disk
) fournit l'assurance que si l'alimentation de votre système chute de quelque façon que ce soit, votre état enregistré ne sera pas affecté et l'ordinateur peut reprendre là où il s'était arrêté. Cela dit, c'est aussi le plus lent, depuis l'E / Disque S, pour la taille de votre mémoire, il est nécessaire.
Fin
Pouvoir mettre en veille ou hiberner une machine localement ou à distance via la ligne de commande offre une grande flexibilité, à différents niveaux d'économie d'énergie grâce à divers modes de veille. Les serveurs et les postes de travail peuvent hiberner.
Un ordinateur peut être suspendu au ralenti (s2idle), à la mémoire (mem) et sur disque (disco). Ce guide décrit les différentes alternatives pour le faire, ainsi que sa relation avec le matériel sous-jacent. Systèmes d'exploitation courants, même quand ils supportent l'hibernation et le sommeil, ils n'annoncent pas ou n'exposent pas toujours ces options dans leur interface graphique de bureau.
Savoir aller plus loin sur la ligne de commande nous évite souvent de ne pas pouvoir hiberner ou mettre en veille une machine du tout., le pouvoir d'hiberner ou de mettre en veille cette machine à distance. Prendre plaisir!
Clause de non-responsabilité: aucun ordinateur n'a été endommagé dans les multiples expériences réalisées pour ce guide 🙂