Per le distribuzioni Linux che usano systemd, c'è una differenza pratica tra questi due comandi?
systemctl suspend
pm-suspend
Quale dovrei usare o preferire?
Per le distribuzioni Linux che usano systemd, c'è una differenza pratica tra questi due comandi?
systemctl suspend
pm-suspend
Quale dovrei usare o preferire?
Risposte:
In breve, dovresti generalmente preferire la modalità di sospensione integrata dalla tua distribuzione. Per le distribuzioni che spediscono systemd, questo è in genere systemctl suspend
.
Ad esempio, il wiki di Arch Linux dice :
systemd fornisce comandi nativi per la sospensione, l'ibernazione e una sospensione ibrida, vedere "Gestione dell'alimentazione con systemd" per i dettagli. Questa è l'interfaccia predefinita utilizzata in Arch Linux.
Con systemd
pm-utils
e i suoi hook non vengono più utilizzati, invece c'èsystemd-suspend
.
Il motivo per cui vuoi restare fedele a ciò che usa la tua distro è che i loro pacchetti che si preoccupano di sospendere / riprendere spediranno script hook che si integrano con pm-utils
( /usr/lib/pm-utils/sleep.d
) o systemd
( /usr/lib/systemd/system-sleep/
), quindi dovresti usare la stessa interfaccia per avere tutto il necessario i ganci funzionano come previsto.
Inoltre, le distro in genere agganciano il metodo di sospensione / ibernazione corretto in ACPI per eventi hardware, ambienti desktop (per pulsanti di spegnimento che consentono di sospendere / ibernare) e con salvaschermi / blocchi, ecc.
Sia pm-suspend
e systemd-suspend
utilizzano in genere le stesse interfacce per davvero mettere il computer a dormire.
Entrambi utilizzano per impostazione predefinita il driver di sospensione del kernel (scrivendo su /sys/power/state
) ed entrambi supportano driver di sospensione esterni (ad esempio uswsusp
, vedere qui per i dettagli su come collegarlo a systemd.)
Entrambi supportano i file di configurazione e gli script hook chiamati nel processo di sospensione o ripresa, la differenza principale è la posizione dei file (l'API degli hook è molto simile):
pm-utils
legge la sua configurazione dai file /etc/pm/config.d
ed esegue hook da entrambe /etc/pm/sleep.d
e /usr/lib/pm-utils/sleep.d
directory.systemd-suspend
legge la sua configurazione dal /etc/systemd/sleep.conf
file (o file in una sleep.conf.d
directory) ed esegue hook da /usr/lib/systemd/system-sleep/
.Quindi, da quel punto di vista, entrambi sembrano molto simili ...
Ma systemd va oltre nel suo supporto per sospendere / ibernare / riprendere, poiché:
systemctl suspend
è ovviamente ancora un'opzione.) Trigger sospendere tramite D-Bus piuttosto che eseguendo un comando è in genere utile da un ambiente desktop.Quindi, anche se entrambi pm-utils
e systemd-suspend
ottenere l'effettiva sospensione del sistema all'incirca allo stesso modo, l'integrazione con gli altri componenti del sistema fa sì che sia importante ciò che viene chiamato ... E sulle distribuzioni che spediscono systemd, allora systemctl suspend
è in genere il giusto quello da chiamare.
pm-utils
installato di default e sembra fare affidamento systemctl
, ma /usr/lib/pm-utils/sleep.d/
ha delle cose dentro e /usr/lib/systemd/system-sleep/
non esiste. Tuttavia, vedo /lib/systemd/system-sleep/
e molti altri sotto /snap/
, ognuno dei quali contiene uno o due file.