Come ibernare o sospendere Linux dalla riga di comando

Contenuti

L'ibernazione e il sonno sono sia per gli orsi che per i PC!! Se il tuo obiettivo è consumare meno elettricità, questa guida ti mostrerà come creare un piccolo script per l'ibernazione, sospendere o congelare il computer in modo sicuro dalla riga di comando.

ibernazione e Dormire en Linux

L'ibernazione di un computer salverà il contenuto corrente della memoria del computer (il RAM memoria sul tuo computer) su disco, soprattutto allo spazio di scambio. Dopo di che, l'alimentazione verrà interrotta automaticamente da una chiamata all'hardware, e quando riavvio il computer, il contenuto della memoria verrà letto dallo spazio di swap alla memoria principale e potrai continuare a utilizzare il computer esattamente nel punto in cui è stato ibernato. Quello.

C'è una sfida quando si tratta di ibernare un'istanza Linux utilizzando la riga di comando: avrai bisogno di uno spazio di swap abbastanza grande da incapsulare l'intera dimensione della RAM e, potenzialmente, qualcosa in più per il normale utilizzo di swap simultaneo da parte delle app. Perché, se hai 8 GB di RAM nel tuo sistema, è possibile che tu voglia allocare uno spazio di scambio di 16 un 20 GB per essere sicuri che ce ne sia abbastanza. Se vuoi imparare a farlo, consulta la nostra guida Come creare e abilitare il file di scambio sulla riga di comando di Linux.

Uno stato di riposo è molto equivalente, anche se l'energia non sarà completamente rimossa. la sua memoria, e a volte la tua CPU, rimarrà sotto tensione in modo che quando tornerai alla macchina, e come esempio premi la barra spaziatrice o fai clic su un pulsante del mouse (come eventi trigger), il computer riprenderà a funzionare dal punto in cui lo metti in stop. Generalmente, questi eventi trigger possono essere configurati dal BIOS.

Generalmente, il BIOS del tuo computer può essere inserito durante l'avvio del tuo computer, purché non sia stato ibernato o messo a dormire, ma era completamente spento l'ultima volta che l'hai usato. Spesso, può essere inserito premendo un tasto come F2 o DEL (o qualsiasi altro tasto visualizzato sullo schermo o disponibile nel manuale del produttore della scheda madre) durante l'avvio anticipato del sistema (non appena viene visualizzato del testo sullo schermo dopo aver premuto il pulsante di accensione).

Generalmente, In Linux sono disponibili tre livelli di sospensione per il risparmio energetico basati sul kernel, fornito dal sistema operativo (o più specificamente il kernel).

Questi livelli sono integrati nel kernel e la loro disponibilità dipende dal sistema operativo utilizzato.. I livelli sono Sospendi al minimo (giustamente chiamato s2idle oh congelare), Sospendi in memoria (meme o più correttamente profondo) e Sospendi su disco (discoteca). Il tuo sistema può anche supportare una modalità standby (standby oh shallow). Presto impareremo di più su come scoprire quali livelli sono disponibili sul tuo sistema e come controllarli!!

I desktop non possono entrare in ibernazione o sospensione??

curiosamente, mentre la sospensione della memoria e la sospensione del disco sono generalmente disponibili nel kernel e supportate dal sistema, il sistema operativo in esecuzione sul kernel, con una certa regolarità, non presenta queste opzioni nella sua GUI / Scrivania.

Come esempio, in una recente installazione di Mint 20 (un moderno sistema operativo basato su Ubuntu), clonato in un sistema moderno, le seguenti opzioni erano disponibili premendo il pulsante di accensione nella GUI / Xcfe desktop:

Nessuna sospensione offerta, ibernazione o standby

cancella la sottoscrizione, ricomincia, spegnere e cambiare utente, ma no Dormire, Supporto no ibernazione! Essere in grado di sospendere ancora questo sistema in memoria o su disco sarebbe un grande passo avanti., anche se dobbiamo chiamare il terminale per farlo. La prossima sezione spiegherà come farlo., ma prima diamo un'occhiata alle alternative disponibili sul tuo sistema e cosa significano.

Se corri cat /sys/power/state sulla tua riga di comando, vedrai qualcosa di equivalente al seguente:

opzioni di blocco della memoria e del disco disponibili in / sistema / potenza / stato

In questo particolare sistema, le tre opzioni principali (freeze, mem and disk) è compatibile. Puoi anche vedere standby o il tuo sistema.

il freeze L'opzione, quando impostato, avvierà uno stato di sospensione leggera solo software per il tuo sistema. Lo spazio utente Linux si bloccherà (da qui il termine) e tutti i dispositivi E / S verrà messo in uno stato a basso consumo energetico. Sebbene questa opzione e questo stato siano sempre supportati e limitino il consumo di energia, è il modo più leggero per fermare la tua macchina. Se non hai altre opzioni disponibili, questo può ancora risparmiare sulle bollette dell'elettricità, anche se non tanto quanto spegnere il sistema.

Perché, la domanda per questa opzione / lo stato diventa sopra la coscienza (lasciare il sistema in uno stato pronto per l'uso e come lasciato e salvare un po' invece di spegnerlo, ma dover riaprire le app e salvare di più). Speriamo che il tuo sistema operativo e l'hardware siano compatibili anche con altri stati. Se non è così, considerare l'aggiornamento o la modifica del sistema operativo e / o aggiorna il firmware del tuo BIOS e altri dispositivi hardware alle loro ultime versioni. Anche la modifica delle alternative associate all'alimentazione nel BIOS può essere d'aiuto.

il mem L'opzione, quando impostato, iniciará un Suspend-To-Idle, che è identico a congelare opzione, o sospendere su RAM, dove tutto nel sistema viene messo in uno stato di basso consumo tranne la memoria. L'opzione utilizzata (Suspend-To-Idle o Suspend-To-RAM) dipende dalla configurazione del /sys/power/mem_sleep procedimento. Puoi esaminare le varie modalità di questo file semplicemente eseguendo cat /sys/power/mem_sleep nella riga di comando del terminale.

In termini generali, Mi aspetterei che questa opzione diventi predefinita deep predefinito (come indicato [code]) su tutti i sistemi operativi Linux, semplicemente perché quando si imposta il /sys/power/state opzione a mem, ci si aspetterebbe che il sistema scriva il contenuto in memoria (In altre parole, Sospendi su RAM, che si configura usando deep Su /sys/power/mem_sleep) invece della modalità Suspend-To-Idle come indicato s2idle.

Nota anche che, perché, è possibile utilizzare due modi diversi per sospendere al minimo: o scrivendo freeze per /sys/power/state, o scrivendo s2idle per /sys/power/mem_sleep e poi scrivendo mem per /sys/power/state.

Come potete vedere, la terminologia utilizzata è un po' confusa e mischiata per la presenza del /sys/power/mem_sleep procedimento. Un modo più semplice di fare le cose, e presumibilmente l'impostazione predefinita su tutti i moderni sistemi operativi Linux, se ne andrebbe /sys/power/mem_sleep adattato a deep e scrive freeze per /sys/power/state una sospensione per inattività, e scrivere mem per /sys/power/state una bretella una RAM.

In conclusione, abbiamo l'ultima opzione (fintanto che il tuo sistema non ha il standby opzione, che è un'alternativa Power-On-Suspend in cui la CPU mantiene il potere) e cos'è disk. Questa opzione abilita la sospensione su disco. Semplicemente, è l'opzione di ibernazione che abbiamo descritto in precedenza, mentre Suspend-To-Idle o Suspend-To-RAM possono essere considerate modalità di sospensione. In questa modalità, tutti i dati in memoria vengono scritti su disco, così la memoria può liberarsi anche di energia: uno spegnimento completo.

In sintesi, il modo più semplice per scegliere una delle tre opzioni di sospensione dell'alimentazione principale è avere (o lasciare) /sys/power/mem_sleep adattato a deep, ignora questo file e quindi seleziona le nostre modalità di risparmio energetico usando /sys/power/state assolo, e per iscritto freeze (Sospendi al minimo), mem (Sospendere una RAM), oh disk (Sospendi su disco) a questo file. Vediamo come farlo in sicurezza.

Come andare in letargo, dormire o congelare

Vogliamo avere uno script che vada in letargo, sospendere o congelare il nostro computer in modo sicuro. Perché si parla di sicurezza?? Bene, considera come scrivere freeze per /sys/power/state bloccherà immediatamente il sistema e lo ripristinerà allo stesso identico stato quando si preme un tasto o si fa clic con il mouse (a seconda che tali opzioni siano abilitate tramite la configurazione del BIOS). Il suo banco, sbloccato, è ancora sbloccato!

Perché, abbiamo bisogno di uno script che non vada in letargo, sospendere o congelare la nostra macchina, ma blocca anche il nostro desktop. L'implementazione di questo dipenderà dal sistema operativo, così come il desktop / GUI scelta.

Una rapida ricerca sul tuo motore di ricerca preferito per [schermo] bloccare la GUI della distribuzione Linux dalla riga di comando dove schermo è una parola / termine di ricerca facoltativo, Distribuzione Linux è il nome della tua distribuzione Linux, e GUI è il nome della tua GUI (come xcfe, come esempio), rivelare una o più alternative per bloccare il terminale dalla riga di comando. Per questa guida, useremo Linux Mint 20 con xcfe.

Definiamo il nostro hibernate.sh script nel modo successivo:

sudo sonno 0.1  # To get auth
xflock4
sleep 3
disco eco | sudo tee /sys/power/state  # Richiede spazio di scambio sufficiente

Nella prima riga invochiamo sudo per abilitare l'autenticazione a livello di superutente / radice. Semplicemente fattureremo sleep 0.1 come un comando fittizio. L'unico scopo qui è che i successivi comandi sudo (come l'ultimo) non richiederci di inserire l'autenticazione, poiché è un po' difficile inserire una password in un terminale quando lo schermo è già bloccato 😉

Dopo di che, invochiamo il sistema operativo e la scelta del comando lock specifico del desktop / GUI / gestore di finestre, essendo xflock4 per xcfe su Linux Mint 20. Prossimo, abbiamo dormito durante 3 secondi utilizzando sleep 3.

In conclusione, abbiamo scritto (usando echo) la parola disk per /sys/power/state usando tee (guarda man tee Per ulteriori informazioni, se questo è di interesse, solo tee legge dall'input standard e scrive su un file qui) e sudo. Questo ibernerà il nostro sistema su disco (e spegnere il computer) Quando abbiamo abbastanza spazio di scambio come descritto sopra in questa guida.

Modificare questo script in Suspend-To-RAM / La memoria è ora facile: basta scambiare la parola disk per mem.

Definiamo il nostro sleep.sh script nel modo successivo:

sudo sonno 0.1  # To get auth
xflock4
sleep 3
eco profondo | sudo tee /sys/power/mem_sleep
echo mem | sudo tee /sys/power/state

Abbiamo fatto il passo in più per scrivere deep per /sys/power/mem_sleep per essere al sicuro del potere ed evitare il minimo per sospendere. Funzionerà solo se deep è una vera alternativa nel tuo sistema (ricordati di correre cat /sys/power/mem_sleep per scoprire le modalità di sospensione della memoria e garantire deep È uno di quelli). e deep è già selezionato come impostazione predefinita corrente, mostrerà come [deep].

In conclusione, possiamo anche fare un freeze script nel modo successivo:

sudo sonno 0.1  # To get auth
xflock4
sleep 3
congelamento dell'eco | sudo tee /sys/power/state

Si noti che non vi è alcuna scrittura aggiuntiva di s2idle per /sys/power/mem_sleep necessario, dal momento che freeze scrivere a /sys/power/state usa automaticamente s2idle (Sospendi al minimo). Come precedentemente descritto, avremmo potuto scrivere s2idle per /sys/power/mem_sleep e poi scritto mem per /sys/power/state Invece, per ottenere lo stesso risultato, ma questo sembra essere un modo più confuso per farlo.

I molteplici stati energetici elencati negli script precedenti, nell'ordine in cui sono presentati (disk > mem > freeze) offrono risparmi energetici dal più alto al più basso e livelli più alti metteranno il computer in uno stato di sospensione più profondo.

È inoltre degno di nota che solo Suspend-To-Disk (disk) fornisce la garanzia che se l'alimentazione del sistema diminuisce in qualsiasi modo, lo stato salvato non sarà interessato e il computer può riprendere da dove era stato interrotto. Avendo detto questo, è anche il più lento, poiché la E / disco S, per le dimensioni della tua memoria, è necessario.

Fine

Essere in grado di sospendere o ibernare una macchina localmente o in remoto tramite la riga di comando offre una grande flessibilità, a vari livelli di risparmio energetico attraverso varie modalità di sospensione. Sia i server che i desktop possono essere ibernati.

Un computer può essere messo in stato di inattività (s2idle), alla memoria (meme) e su disco (discoteca). Questa guida descrive le varie alternative per farlo, e come si relaziona all'hardware sottostante. Sistemi operativi comuni, anche quando supportano il letargo e il sonno, non sempre pubblicizzano o espongono queste opzioni nella loro GUI desktop.

Sapere come fare un passo avanti sulla riga di comando spesso ci salva dall'impossibilità di ibernare o sospendere del tutto una macchina., il potere di ibernare o sospendere quella macchina da remoto. Godere!

Disclaimer: nessun computer è stato danneggiato nei molteplici esperimenti eseguiti per questa guida 🙂

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.