You are here: Foswiki>Frontend Web>PPCDevelopments>UfcServerAdmin (11 Jul 2013, gschwarz)Edit Attach

Userface und Userface Server administrieren und warten


Start

Jedes Anwendungsprogramm unter VMS, das Userface benutzt, öffnet eine TCPIP-Verbindung über den Port 7770 zu einem Linux-Rechner. Welcher Rechner das sein kann, ergibt sich aus dem logischen Namen ACC_UFCSERVER_HOST.

Für den laufenden Betrieb ist dies einer der Rechner asl320.acc.gsi.de .... asl327.acc.gsi.de, wo jeweils ein Dämon läuft, der daraufhin einen Server für diese Anwendung mittels eines Shellscripts startet. Siehe auch "Konfiguration von xinetd" Das Script stellt die richtige Umgebung für den Ufcserver her und startet den ufcserver unter /common/usr/production/ufcserver/library.

Angucken kann man sich die laufenden Server mit ps -fe | grep ufcserver. und kriegt etwa folgende Ausgabe:
root     20475  3574  0 Jan04 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     20476 20475  0 Jan04 ?        00:00:00 /common/usr/production/ufcserver/library/ufcserver
root     22567  3574  0 Jan20 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     22568 22567  0 Jan20 ?        00:00:00 /common/usr/production/ufcserver/library/ufcserver
root     23854  3574  0 Jan15 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     23855 23854  0 Jan15 ?        00:00:00 /common/usr/production/ufcserver/library/ufcserver
root     26292  3574  0 Jan18 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     26295 26292  0 Jan18 ?        00:00:00 /common/usr/production/ufcserver/library/ufcserver
root     29453  3574  0 Jan15 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     29454 29453  0 Jan15 ?        00:00:01 /common/usr/production/ufcserver/library/ufcserver
root     29541  3574  0 Jan18 ?        00:00:00 /bin/bash /common/usr/production/ufcserver/ufcserver.sh
root     29542 29541  0 Jan18 ?        00:00:00 /common/usr/production/ufcserver/library/ufcserver

Man sieht jeweils das Script sowie den laufenden ufcserver selbst.

Die zweite Spalte gibt die Prozess_id an, die man auch in den Logfiles wiederfindet.

Start eines lokalen Ufcservers zu Testzwecken

Auch auf asl722.acc.gsi.de läuft ein Dämon. Die Shell namens ufcserver-dev.sh liegt unter /common/usr/develop/ufcserver/ufcserver.sh.In diesem Skript wird der LD_LIBRARY_PATH auf einen lokalen workspace gesetzt, jetzt: /home/bel/gschwarz/lnx/workspace/local/libasl64 Auch der logische Name für die libray zeigt hierhin: library -> /home/bel/gschwarz/lnx/workspace/local/libasl64. Um den ufcserver auf der asl722 zu starten muss man unter VMS den logischen Namen von ACC_UFCSERVER_HOST setzen. $def ACC_UFCSERVER_HOST "asl722.acc.gsi.de".

Logfiles

Geloggt wird in die zentralen log-Directories. Diese liegen unter

/common/log01/logs/<RechnerName>

Rechner asl320 .. asl327, der Rechner, auf dem der ufcserver läuft; File ufcserver.<Datum> .log

Geloggt wird beim Start:
Jan 23 08:02:11 asl323 info UFCserver[20296]: UFC: ufcserver 21.01 running for HECHLER, prc Deep Thought on axp704.acc.gsi.de

beim Beenden,
Jan 23 12:01:49 asl323 info UFCserver[20296]: UFC: socket closed client finished  
Jan 23 12:01:49 asl323 info UFCserver[20296]: UFC: ufcserver 21.01 exiting for HECHLER, prc Deep Thought on axp704.acc.gsi.de   

sowie in allen weiteren Fällen, in denen der loglevel <= LOG_INFO ist. (Default)

Die Ziffer in eckigen Klammern hinter UFCServer ist die Prozess_id des ufcservers.
Loglevel

Unter VMS kann man den Loglevel für den laufenden Prozess einstellen. ufclog_who zeigt den aktuellen Loglevel an, ufclog_on setzt den Level auf LOG_DEBUG, ufclog_off setzt den loglevel auf LOG_INFO. Da der ufcserver vorerst nicht mit kleinerem Loglevel laufen soll (und kann) reicht das fürs Erste.

Das entsprechende Command-File befindet sich unter sis_mgr und heißt ufcloglevel.

Konfiguration von xinetd

Auf jedem Blade läuft xinetd, ein Dämon, in dessen Konfigurationsfile /etc/xinetd.conf ein includedir angegeben ist. Dieses Verzeichnis /aslnnn/etc/xinetd.d ist rechnerspezifisch, aslnnn ist ein mount bind auf /common/config/HOSTNAME rechnerspezifisch. Hier liegt die Datei ufcserver (ein symbolischer Link auf /common/config/etc/xinetd.d/ufcserver). Dieses File enthält u.a. die Portnummer 7770 und den Pfad für das zu startende Script /common/usr/production/ufcserver/ufcserver.sh.

Beide Dateien sind im Projekt ufcserver/config abgelegt.
Achtung: Einzelne Dateien haben im Repository einen anderen Namen als im Produktionsverzeichnis.

  • ufcserver.xinetd
    • Produktionsname: ufcserver.
    • Produktionsverzeichnis: /etc/xinetd.d.
  • ufcserver.sh
    • Produktionsname: ufcserver.sh
    • Produktionsverzeichnis: $PROOT/ufcserver
  • readme.txt
    • enthält eine Kurzbeschreibung ähnlich dieser hier. Sie weist insbesondere auf die notwendige Sonderbehandlung bei der Änderung einzelner Dateien hin. Bitte beachten!

Code zusammenbauen

Eine Beschreibung zur Erstellung des VMS-Codes und den Zusamenbau des Linux Userface-Server findet sich unter Userface Code.
Topic revision: r23 - 11 Jul 2013, gschwarz
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback