
Ich habe zwei Linux-Images auf unterschiedlichen Volumes und eine /boot-Partition, die von beiden getrennt ist. Ich möchte, dass meine Benutzer ihr „Desktop-Linux-Betriebssystem“ nachts in den Ruhezustand versetzen und in das „Renderfarm-Linux-Betriebssystem“ neu starten können.
Am Morgen wird das „Renderfarm-Betriebssystem“ heruntergefahren und das System zurück in die im Ruhezustand befindliche Linux-Desktopsitzung gebootet.
Ich nehme an, dass ich dies mit einem Skript aktivieren kann, das die Grub2-Konfiguration ändert und dann ausführt systemctl hibernate
, womit ich das meiste erreichen kann, aber eigentlich muss das System das laufende Betriebssystem nicht nur in den Ruhezustand versetzen; es muss das laufende Betriebssystem in den Ruhezustand versetzen und dann neu starten.
Es gibt keineerscheinenes muss eine Möglichkeit geben, dass systemctl sowohl in den Ruhezustand wechselt als auch neu startet. Es kann entweder das eine oder das andere tun.
Wie kann ich das zum Laufen bringen?
Antwort1
Sie können den vorhandenen Ruhezustand so neu konfigurieren, dass in folgenden Fällen ein Neustart anstelle eines Ausschaltens durchgeführt wird /etc/systemd/sleep.conf
:
[Sleep]
HibernateMode=reboot
Oder Sie können dasselbe mit dem Hybrid-Schlafmodus (Ruhezustand + Suspend) machen:
[Sleep]
HybridSleepMode=reboot
Der Wert entspricht direkt dem Text, in den systemd schreibt /sys/power/disk
.
Hintergrund: systemd führt den Ruhezustand nicht wirklich durch, sondern weist den Kernel lediglich an, dies zu tun:
- systemd schreibt den gewünschten Post-Hibernation-Modus („Platform“ für S4-Shutdown, „Suspend“ für Hybrid-Ruhezustand oder „Reboot“ für Ihre individuelle Anpassung) in die Datei
/sys/power/disk
. - systemd schreibt das Ruhezustandskommando „disk“ in die Datei
/sys/power/state
. - Der Kernel erledigt den Rest und kehrt erst zu systemd zurück, wenn der Computer aufgewacht ist.