Inhaltsverzeichnis

ArchLinux - Sleep, Suspend und Hibernate deaktivieren

systemd ist ein Werkzeuge zum Verwalten des ArchLinux Start-Systems.

Nachfolgend soll verhindert werden, dass ArchLinux z.B. im Server-Betrieb in den „Sleep“-, „Suspend“- oder den „Hibernate“-Modus wechselt!

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root zu werden, geben Sie bitte nachfolgenden Befehl ein:

$ su -
Password: 

Standard Zustand

Nach der Installation von ArchLinux ist die aktuelle Standard-Einstellung, das systemd nach ca. 20 Minuten der Server in den „Suspend“-Modus wechselt und somit natürlich auch seinen Dienst einstellt, bis dieser wieder „aufgeweckt“ wird.

Um dieses Verhalten aktuell zu verhindern, können im Bereich von systemd, nachfolgende Dienste „maskiert“ werden:

  1. sleep.target
  2. suspend.target
  3. hibernate.target
  4. hybrid-sleep.target

Eine Abfrage über den Zustand der Daemons (Dienste) nach der Installation, kann mit nachfolgenden Befehlen durchgeführt werden:

# systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
○ sleep.target - Sleep
     Loaded: loaded (/usr/lib/systemd/system/sleep.target; static)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

○ suspend.target - Suspend
     Loaded: loaded (/usr/lib/systemd/system/suspend.target; static)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

○ hibernate.target - Hibernate
     Loaded: loaded (/usr/lib/systemd/system/hibernate.target; static)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

○ hybrid-sleep.target - Hybrid Suspend+Hibernate
     Loaded: loaded (/usr/lib/systemd/system/hybrid-sleep.target; static)
     Active: inactive (dead)
       Docs: man:systemd.special(7)
# systemctl list-unit-files --type=target --state=static sleep.target suspend.target hibernate.target hybrid-sleep.target
UNIT FILE           STATE  VENDOR PRESET
hibernate.target    static -            
hybrid-sleep.target static -            
sleep.target        static -            
suspend.target      static -            

4 unit files listed.

Konfiguration

Das „maskieren“ (Ändern des Links auf /dev/null) kann mit nachfolgendem Befehl durchgeführt werden:

[root@archlinux ~]# systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

Deaktivierter Zustand

Anschließend sollte eine Abfrage über den Zustand der Daemons (Dienste) nach dem Maskieren, wie folgt aussehen und kann mit nachfolgenden Befehlen durchgeführt werden:

# systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
○ sleep.target
     Loaded: masked (Reason: Unit sleep.target is masked.)
     Active: inactive (dead)

○ suspend.target
     Loaded: masked (Reason: Unit suspend.target is masked.)
     Active: inactive (dead)

○ hibernate.target
     Loaded: masked (Reason: Unit hibernate.target is masked.)
     Active: inactive (dead)

○ hybrid-sleep.target
     Loaded: masked (Reason: Unit hybrid-sleep.target is masked.)
     Active: inactive (dead)
# systemctl list-unit-files --type=target --state=masked sleep.target suspend.target hibernate.target hybrid-sleep.target
UNIT FILE           STATE  VENDOR PRESET
hibernate.target    masked disabled     
hybrid-sleep.target masked disabled     
sleep.target        masked disabled     
suspend.target      masked disabled     

4 unit files listed.