Anleitung zum Steuern eines Monitors über ein Script

Heutige Monitore unterstützen das Display Power Management Signaling (DPMS). Mit dieser Technik ist es möglich, dass eine Grafikkarte den Monitor in einen Energiesparmodus versetzen kann (z.B. Standby). Unter Linux ist es leicht möglich, sich ein Script zu basteln, um einen Monitor über ein Script anzusteuern. Standardmäßig sind diese Funktionen fest eingerichtet im X-Server, deshalb müssen wir zuerst alle Energiesparmechanismen deaktivieren, die den Monitor betreffen. Wie man die Energiesparmechanismen von GNOME und KDE abschaltet, kannst du unter http://wiki.ubuntuusers.de/Bildschirmschoner nachlesen.

Die Energiesparmechanismen vom X-Server deaktivierst du, indem du die Datei /etc/X11/xorg.conf editierst und folgende Einträge einfügst, bzw ergänzt:

Section "Monitor"
Identifier "Standardbildschirm"
Option "DPMS"
EndSection

Section "ServerFlags"
Option "BlankTime" "0" # Zeit wann der Monitor Schwarz wird (Standard: 10 Minuten)
Option "StandbyTime" "0" # Zeit wann der Monitor in den Standby geht (Standard: 20 Minuten)
Option "SuspendTime" "0" # Zeit wann der Monitor in den Suspend geht (Standard: 30 Minuten)
Option "OffTime" "0" # Zeit wann sich der Monitor abschaltet (Standard: 40 Minuten)
EndSection

Das Script zum Ansteuern ist eigentlich recht klein. Erstelle die Datei /usr/bin/togglemonitor und füge folgenden Code ein

#! /bin/bash

XAUTHORITY=/home/<Benutzer>/.Xauthority
DISPLAY=:0

xset dpms force $1

Die Pfad der Datei .Xauthority muss an den Benutzer angepasst werden, der den X-Server ausführt. Damit das Script auch funktioniert, muss dieses noch ausführbar gemacht werden:

chmod +x /usr/bin/togglemonitor

Mögliche Parameter für das Script sind on, off, standby und suspend. Das Script ruft man also später z.B. wie folgt auf, um den Monitor auszuschalten

togglemonitor off


Praxisbeispiel

Du fragst dich nun, wofür man das denn überhaupt brauchen kann? Ich habe vor einigen Tagen ein Überwachungssystem für unsere Server installiert und der Status unserer Server wird uns über einen Monitor im Büro angezeigt. Da Systemadministratoren von Haus aus faul sind :D sollte der Monitor automatisch von Montags bis Freitags Morgens um 07:00 Uhr an- und Abends um 19:00 ausgehen. Dafür habe ich zwei cronjobs zur Datei /etc/crontab hinzugefügt:

0  7 * * 1,2,3,4,5 root togglemonitor on
0 19 * * 1,2,3,4,5 root togglemonitor off

Möchtest du mehr über cronjobs erfahren, kannst du dir die Seite http://wiki.ubuntuusers.de/cron anschauen.