Dies ist ein Mittelweg zwischen Programmierung und Server-Admin, aber dies scheint letztendlich der relevanteste Ort dafür zu sein.
Ich suche nach einer Möglichkeit, um festzustellen, ob die Variable ' $DISPLAY
' einen XServer bewirbt, mit dem wir tatsächlich eine Verbindung herstellen können, dh ob die gesamte Authentifizierung und so weiter vorhanden ist, damit weitere Dinge ausgeführt werden können.
Ich suche idealerweise nach einem Shell-End-Tool, das true / false zurückgibt und das in einem Build-Skript verwendet werden kann, um zu bestimmen, ob die anderen darin enthaltenen Tests (die ich nicht kontrolliere) ausgeführt werden sollen oder nicht.
Die Tests prüfen derzeit einfach, ob die env
Variable " $DISPLAY
" vorhanden ist. Wenn sie vorhanden ist, wird versucht, eine Verbindung herzustellen. Wenn die Verbindung nicht funktioniert, gehen die Tests davon aus, dass der Test fehlgeschlagen ist und nicht einfach die Anzeige nicht verbunden werden kann.
Ich muss es nur können
if [[ ! can_connect_to_X ]] ; then
unset DISPLAY
fi
Um diese Tests mit schweren psychischen Problemen zu stoppen.
Im Idealfall sollte das dafür erforderliche Tool mit den X-Client-Bibliotheken selbst geliefert werden, um keine besonderen Abhängigkeiten zu verursachen und davon ausgehen zu können, dass wir keine Verbindung zu einem Display herstellen können, wenn das Dienstprogramm nicht vorhanden ist.
Ich vermute, es gibt eine bessere Lösung. Sie können jedoch immer nur ein kleines Tool wie xclock verwenden und den Exit-Status überprüfen.
Aber Mann, das ist hässlich :-)
Weniger Hacky, füge folgendes in checkX.c ein:
Dann:
Zuletzt:
quelle
Hier ist ein möglicher Weg, aber nicht sicher, wie gut es ist.
Dies scheint zu funktionieren.
quelle