kcrontab ist natürlich nicht nur als reines Tool zur Bearbeitung von crontabs entwickelt worden. Ziel war und ist es vor allem, dem KDE Desktop einen weiteren Funktionalitätsvorsprung zu geben. Daher ist natürlich auch die Benutzung zum automatischen Starten von KDE Anwendungen gedacht. Dieser Abschnitt beschreibt, wie man dies bewerkstelligen kann.
KDE Anwendungen zeichnen sich vor allem durch Ihre einfach zu benutzenden Oberflächen aus. Die Programme kommunizieren mit dem Benutzer über Fenster, die Buttons, Menüs etc. enthalten. Dies führt allerdings zu einem Problem bei der Benutzung von cron. Die Kommandos aus der crontab werden von cron in einer eigenen shell gestartet. Es muß also definiert werden, auf welchem X-Host und auf welchem Display das Programm gestartet wird. Dies erreichen wir durch das hinzufügen des Host mittels xhost und das setzten der Umgebungsvariablen $DISPLAY.
1. Schritt:
Es muß der betreffende X-Host gesetzt werden. Auf unvernetzten
Einzelplatzsystemen ist dies regelmäßig localhost. Grundsätzlich
könnte man nach dem Start von KDE ein Terminal öffenen und folgenden Befehl
eingeben um localhost entsprechend anzumelden:
xhost +localhost
Natürlich ist dies ein recht aufwendiges Vorgehen. Es sollen die Abläufe ja
gerade automatisiert werden. Es gibt viele Möglichkeiten, den Aufruf von
xhost zu automatisieren. Zwei Möglichkeiten sollen hier genannt
werden:
Zum ersten könnte man cron im Kommando-Feld den Namen einer
ausführbaren Scriptdatei übergeben. Diese würde dann xhost aufrufen
und dann die KDE Anwendung. Hier ein Beispiel:
#Script zum Aufruf von kcrontab mittels cron
#
xhost +localhost
/opt/kde/bin/kcrontab
#Ende
Das Skript ließe sich natürlich auch entsprechend verfeinern. Zum Beispiel
könnte man vor dem Aufruf der Anwendung noch überprüfen, ob das setzen des
X-Host auch geklappt hat.
Weiters kann man xhost bei jedem Start von KDE aufrufen. Dazu kann man zum Beispiel einen Programm-Link im Autostartverzeichnis anlegen. Dazu öffnet man den Autostart Ordner und wählt NEU-PROGRAMM aus dem Menü DATEI aus. Den Link nennt man zum Beispiel xhost.kdelnk. Der Link wird dann angelegt.
Der Autostart Ordner mit xhost.kdelnk
Jetzt klickt man mit dem rechten Mausknopf auf das Icon und wählt EIGENSCHAFTEN aus. Im Feld AUSFÜHREN gibt man dann wieder xhost +localhost ein. Jetzt wird bei jedem Start von KDE xhost ausgeführt.
Die Einstellungen für xhost.kdelnk
2. Schritt:
Nun muß man darauf achten, die Display Variable richtig zu setzten. Dies
geschieht in kcrontab. Man geht in das Menü BEARBEITEN und
wählt VARIABLEN BEARBEITEN. Im Feld VARIABLE gibt man
DISPLAY ein und im Feld WERT wird localhost:0.0 eingetragen.
Jetzt müßten alle Einträge auch als KDE Anwendungen starten.
Das Setzen der DISPLAY-Variable in kcrontab
3. Schritt:
Jetzt sollte man bereit sein für einen Test des ganzen. Dies kann man am
besten durch Anlegen eines Beispieleintrages. Dazu kann man zum Beispiel
versuchen, kcrontab selber mittels cron zu starten. Bei der
Fehlersuche hilft es, ein Terminal zu öffnen, in welchem man sich
/var/log/messages anzeigen läßt. (Dies geht ganz einfach: Terminal
öffnen, ggf. root-User werden, und den Befehl:
tail -f /var/log/messages
eingeben) Die gesamte Arbeit von kcrontab und cron wird
dann sichtbar. Bei Eintreffen des gesetzten Zeitpunktes wird cron das
Programm (im Beispiel kcrontab) starten. Dies wird im Log sichtbar.
Sollte sich dann kein Fenster öffnen, wird noch ein Problem vorliegen.
Ein Terminal mit tail -f /var/log/messages hilft beim
Debuggen
Hinweis:
Alle Schritte wurden vom Autorenteam ausprobiert. Sollte es auf Ihrem System
zu Problemen kommen oder Änderungen dieser Beschreibung notwendig sein, so
bitten wir um kurzen Hinweis. Ebenso nehmen wir Vorschläge zum einfachen
starten von xhost gerne entgegen, da die hier beschriebene Variante
sicherlich nicht die eleganteste ist.