Login


 
Newsletter
Di, 8. Februar 2011, 15:00

PC zeitgesteuert starten

Die Echtzeituhr der meisten modernen Rechner ermöglicht es, das Gerät zu einem bestimmten Zeitpunkt ohne manuellen Eingriff starten zu lassen.

Sie wollen einen Rechner mitten in der Nacht starten, eine spezifische Aufgabe erledigen und sich dann wieder ausschalten lassen? Und das regelmäßig jede Nacht? Mit dem Programm rtcwake kein Problem. Voraussetzung ist ein einigermaßen aktuelles ACPI-BIOS und ein nicht zu altes Linux. Wenn das Kommando »poweroff« Ihren Rechner ausschalten kann, stehen die Chancen gut.

Fast jeder Rechner verfügt heutzutage über eine oder sogar mehrere Echtzeituhren - nicht nur PCs, sondern auch NAS-Geräte und viele andere, die nicht einmal unbedingt einen x86-Prozessor haben müssen. Echtzeituhren können in den Chipsatz integriert oder als separater Chip vorliegen, und mehr oder weniger ausgefeilte Funktionen aufweisen. Die Grundfunktionalität, die der Chip MC146818 besitzt, wird fast immer als gegeben vorausgesetzt und ist auch ins ACPI-BIOS integriert. Entscheidend für die Echtzeituhr ist, dass sie dank einer Batterie unabhängig von der Stromversorgung des PCs praktisch unbegrenzt funktioniert.

Für die Echtzeituhr(en) besitzt Linux ein ausgefeiltes RTC (Real Time Clock)-Framework. Eine der einfachsten Funktionen, die man damit nutzen kann, ist das automatische Aufwecken des Rechners aus einem Schlafzustand oder gar das Starten aus dem ausgeschalteten Zustand. Schauen wir uns letzteres einmal an. Dazu wird das Programm »rtcwake« benötigt. Da es zum Paket util-linux-ng bzw. util-linux gehört, dürfte es fast auf jedem Linux-System bereits installiert sein. Zwei simple Kommandos sorgen dafür, dass der Rechner sich ausschaltet und nach fünf Minuten wieder einschaltet:

rtcwake -m no -s 300
poweroff

rtcwake verwendet normalerweise das Gerät /dev/rtc0; sollte ausnahmsweise ein anderes benutzt werden, kann man das mit der Option -d festlegen. Auskunft über den RTC-Zustand gibt, zumindest unter aktuelleren Linux-Kerneln, das Verzeichnis /sys/class/rtc/rtc0. Zusätzlich existiert für die erste Echtzeituhr des Systems die Datei /proc/driver/rtc. Wie immer ist auch hier das modernere sys-Dateisystem gegenüber dem proc-Dateisystem vorzuziehen. Insbesondere findet man in der Datei /sys/class/rtc/rtc0/wakealarm den Zeitpunkt des nächsten Alarms; sie ist leer, wenn kein Alarm gesetzt ist.

Hier ist »Alarm« gleichzusetzen mit dem Zeitpunkt, an dem die Uhr ein Aufwach-Ereignis schickt. Hat man den Rechner wie oben beschrieben ausgeschaltet, wird er zu diesem Zeitpunkt automatisch hochgefahren. Danach ist der Alarm gelöscht, er wirkt also nur einmal. Statt der Option -m no kann man eventuell auch die Option -m off verwenden. Laut Handbuch von rtcwake funktioniert das mit dem meisten BIOSen, ist aber nicht garantiert.

Eine absolute Aufwachzeit gibt man mit der Option -t Zeitstempel statt -s Sekunden an. Dabei ist der Zeitstempel die Zahl der Sekunden seit dem 1.1.1970 - effektiv, aber nicht komfortabel. Hier hilft das Kommando »date« weiter, das ein lesbares Datum in einen Zeitstempel umwandeln kann. So wäre ein Aufwachen am 17.2.2011 um 21 Uhr folgendermaßen zu realisieren:

rtcwake -m no -t $(date -d '20110217 21:00' +%s)
poweroff

Will man dagegen den Rechner täglich um die gleiche Zeit starten, etwas automatisch ausführen und wieder herunterfahren lassen, so sollte man am Ende des auszuführenden Jobs etwas ähnlich dem Folgenden schreiben:

rtcwake -m no -t $(date -d 'tomorrow 21:00' +%s)
poweroff

Wie schon erwähnt, ist nicht nur ein Ausschalten möglich. rtcwake kann den Rechner auch in einen Stromsparzustand versetzen. Dabei beendet sich das Programm nicht, sondern wartet, bis der Rechner wieder in den Normalzustand übergeht. Die möglichen Zustände sind standby (S1), mem (Suspend to RAM, S3) und disk (Suspend to Disk, S4). Näheres ist in der Handbuchdatei von rtcwake zu entnehmen.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Frohe Weihnachten Fest!
Neue Nachrichten