Ausfallsicherer X Window Server, automatische Umschaltung

Die Option Failsafe (Ausfallsicherheit) ermöglicht in Verbindung mit der Skript-Fähigkeit des Konfigurationsprogramms (XmetaXtool: Steuerung und Integration) die Konfiguration eines tatsächlich ausfallsicheren X Window Servers. Dazu muß der XmetaX-Proxy selbst auf einem ausfallsicheren Computer ausgeführt werden. Als X Window Server sollen hier zwei single-headed X-Terminalsone und twodienen. Die gemeinsame Konfigurationsdatei wird über die Variable $terminal (Variablen) parametrisiert:

# /etc/opt/XSOXmetaX/terminal.conf

options +DynamicServer +Failsafe
screen $terminal
display $terminal:0.0
clipX 0
failsafeTimeout 10

Daß eines der X-Terminals zu einem beliebigen Zeitpunkt ausfallen kann, hat zwei Folgen:

Beim Starten von des XmetaX-Proxys ist nicht sicher, welcher X Window Server tatsächlich ansprechbar ist.

Wenn ein X-Terminal während der Laufzeit ausfällt, wird es aufgrund der Option Failsafe automatisch aus der Konfiguration entfernt, und das jeweils andere Terminal muß aufgenommen werden.

Das folgende Shell-Skript behandelt beide Probleme:

#!/bin/sh
# /etc/opt/XSOXmetaX/failsafe

DISPLAY=:0.0 export DISPLAY
export terminal
for terminal in one two
do
/opt/XSOXmetaX/bin/xmetax /etc/opt/XSOXmetaX/terminal.conf &
sleep 60
if /opt/XSOXmetaX/bin/xmetaxtool -print > /dev/null
then
break
fi
if [ "$terminal" = "two" ]
then
echo "$0: No server available" 1>&2
exit 1
fi
done

/opt/XSOXmetaX/bin/xmetaxtool -events \
| while read type terminal detail
do
case $detail
in destroyed)
case $terminal
in one)
terminal=two
;; two)
terminal=one
;; esac
echo "$0: Switching to server $terminal" 1>&2
if /opt/XSOXmetaX/bin/xmetaxtool -nogui \
/etc/opt/XSOXmetaX/terminal.conf
then
:
else
exit $?
fi
;; esac
done

Im zweiten Teil des Skripts werden laufend Konfigurationsänderungen gelesen (Berichten von Konfigurationsänderungen) und verarbeitet: wird ein Screen aus der Konfiguration entfernt, wird der jeweils andere Screen wieder aufgenommen.

Copyright © 2018 X-Software GmbH
info@x-software.com