Gibt es bei Linux-Distributionen mit systemd einen praktischen Unterschied zwischen diesen beiden Befehlen?
systemctl suspendpm-suspend
Welches soll ich verwenden oder bevorzugen?
Gibt es bei Linux-Distributionen mit systemd einen praktischen Unterschied zwischen diesen beiden Befehlen?
systemctl suspendpm-suspendWelches soll ich verwenden oder bevorzugen?
Antworten:
Kurz gesagt, Sie sollten im Allgemeinen den von Ihrer Distribution integrierten Suspend-Modus bevorzugen. Für Distributionen, die systemd versenden, ist dies normalerweise der Fall systemctl suspend.
Zum Beispiel sagt das Arch Linux-Wiki :
systemd bietet native Befehle für Suspend, Hibernate und Hybrid Suspend. Weitere Informationen finden Sie unter "Energieverwaltung mit systemd". Dies ist die Standardschnittstelle, die in Arch Linux verwendet wird.
Und für Debian Jessie :
Mit systemd,
pm-utilsund seine Hooks werden nicht mehr verwendet, stattdessen gibt essystemd-suspend.
Der Grund, warum Sie bei dem bleiben möchten, was Ihre Distribution verwendet, ist, dass ihre Pakete, die sich um Suspend / Resume kümmern, Hook-Skripte liefern, die entweder in pm-utils( /usr/lib/pm-utils/sleep.d) oder systemd( /usr/lib/systemd/system-sleep/) integriert sind. Sie sollten also dieselbe Schnittstelle verwenden, um alle richtigen zu haben Haken laufen wie erwartet.
Darüber hinaus verbinden Distributionen in der Regel die richtige Suspend / Hibernate-Methode mit ACPI für Hardwareereignisse, Desktop-Umgebungen (für Schaltflächen zum Herunterfahren, die Suspend / Hibernate ermöglichen) und mit Bildschirmschonern / Sperren usw.
Beide pm-suspendund systemd-suspendverwenden normalerweise dieselben Schnittstellen, um den Computer tatsächlich in den Ruhezustand zu versetzen.
Sowohl Standard die Kernel zu verwenden suspendieren Treiber (schriftlich an /sys/power/state) und beide unterstützen externe suspendieren Treiber (wie uswsuspfinden Sie hier für Informationen, wie man es in systemd einzuhaken.)
Beide unterstützen Konfigurationsdateien und Hook-Skripte, die beim Anhalten oder Fortsetzen aufgerufen werden. Der Hauptunterschied besteht im Speicherort der Dateien (die API der Hooks ist sehr ähnlich):
pm-utilsLiest seine Konfiguration aus Dateien in /etc/pm/config.dund führt Hooks aus beiden /etc/pm/sleep.dund /usr/lib/pm-utils/sleep.dVerzeichnissen aus.systemd-suspendliest seine Konfiguration aus der /etc/systemd/sleep.confDatei (oder Dateien in einem sleep.conf.dVerzeichnis) und führt Hooks aus /usr/lib/systemd/system-sleep/.Aus dieser Sicht sehen beide sehr ähnlich aus ...
Aber systemd geht weiter in seine Unterstützung für Suspend / Hibernate / Resume, da:
systemctl suspendnatürlich immer noch eine Option ist). Das Auslösen von Suspend über D-Bus anstatt durch Ausführen eines Befehls ist normalerweise nützlich aus einer Desktop-Umgebung.Obwohl beide pm-utilsund systemd-suspenddie tatsächliche Unterbrechung des Systems auf ungefähr die gleiche Weise erreicht werden, macht es die Integration mit den anderen Komponenten des Systems so, dass es darauf ankommt, welche als ... bezeichnet wird. Und bei Distributionsversand-Systemen ist dies systemctl suspendnormalerweise die Richtig, um anzurufen.
pm-utilsstandardmäßig installiert und scheint sich darauf zu verlassen systemctl, enthält jedoch /usr/lib/pm-utils/sleep.d/Dinge und /usr/lib/systemd/system-sleep/existiert nicht. Ich sehe jedoch /lib/systemd/system-sleep/und einige weitere unter /snap/, die alle eine oder zwei Dateien enthalten.