- Ausfallsicherer X Window Server, automatische Umschaltung

Lehrer-Schüler-Situation
Anzeigewand mit mehreren X Window Servern

Versionsänderungen anzeigen

# 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-Terminals — one und two — dienen. 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.

Nach oben
Lehrer-Schüler-Situation
Anzeigewand mit mehreren X Window Servern

Copyright © 2016 X-Software GmbH
info@x-software.com
2009-07-30 14:44:05 +0200