ttymon(1M) ttymon(1M)
NAME
ttymon - Anschlußüberwachungsprogramm für Terminalanschlüsse
SYNTAX
/usr/lib/saf/ttymon
/usr/lib/saf/ttymon -g [-d device] [-h] [-t timeout] [-l ttylabel]
[-p prompt] [-m modules]
BESCHREIBUNG
ttymon ist ein Anschlußüberwachungsprogramm für Terminalanschlüsse,
das auf dem Konzept der STREAMS aufbaut. Es soll Anschlüsse überwachen
sowie Terminalmodi, Übertragungsgeschwindigkeiten und -prozeduren für
Anschlüsse festlegen. Außerdem soll es Benutzer bzw. Anwendungen mit
den Diensten verbinden, die den Anschlüssen zugeordnet sind. Normaler-
weise ist ttymon so konfiguriert, daß es unter dem SAC (Service Access
Controller) als Teil der Service Access Facility (SAF) läuft. Es wird
mit Hilfe des Kommandos sacadm(1M) konfiguriert. Jeder ttymon-Prozeß
kann mehrere Anschlüsse überwachen. Diese sind in der Verwaltungsdatei
des Anschlußüberwachungsprogramms angegeben. Die Verwaltungsdatei wird
mit den Kommandos pmadm(1M) und ttyadm(1M) konfiguriert. Sobald das
Kommando sac(1M) einen ttymon-Prozeß startet, beginnt dieser mit der
Überwachung seiner Anschlüsse. Für jeden dieser Anschlüsse initiali-
siert ttymon zuerst die Streams-Module für die "Linediscipline",
sofern diese angegeben sind, und die Übertragungsgeschwindigkeit sowie
die Terminaleinstellungen. Die Werte für diese Initialisierung werden
dem entsprechenden Eintrag in der Datei mit den TTY-Einstellungen ent-
nommen. Diese Datei wird vom Kommando sttydefs(1M) verwaltet. Stan-
dard-Streams-Module für Anschlüsse werden normalerweise durch das Kom-
mando autopush der Autopush Facility vorgegeben.
ttymon gibt dann den Prompt aus und wartet auf Eingaben des Benutzers.
Drückt der Benutzer auf die BREAK-Taste um anzuzeigen, daß die Über-
tragungsgeschwindigkeit nicht stimmt, versucht ttymon die nächste
Geschwindigkeit und gibt wieder den Prompt aus. Nach dem Empfang einer
gültigen Eingabe interpretiert ttymon die eventuell vorhandene Konfi-
gurationsdatei für den Dienst des Anschlusses, erzeugt, falls notwen-
dig, einen utmp-Eintrag, erstellt die Dienstumgebung und ruft dann den
Dienst auf, der dem Anschluß zugeordnet ist. Gültige Eingaben bestehen
aus Zeichenketten mit mindestens einem Zeichen, das kein Zeilenende-
zeichen ist. Die Zeichenketten werden jeweils mit einem Carriage-
Return beendet. Wird der Dienst beendet, bereinigt ttymon den utmp-
Eintrag, falls vorhanden, und bringt den Anschluß in seinen Anfangszu-
stand.
Wenn für einen Anschluß das Flag pre-prompt-config eingestellt ist,
wird die Konfigurationsdatei bereits vor dem Ausgeben des Prompts
interpretiert, die Interpretation vor dem Starten des Dienstes ent-
fällt dann.
Ist für einen Anschluß autobaud aktiviert, versucht ttymon, die Über-
tragungsgeschwindigkeit für den Anschluß automatisch zu bestimmen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
ttymon(1M) ttymon(1M)
Erst wenn der Benutzer ein Carriage-Return eingegeben hat, kann ttymon
die Übertragungsgeschwindigkeit erkennen und den Prompt ausgeben. Zur
Zeit kann autobaud die Übertragungsgeschwindigkeiten 110, 1200, 2400,
4800 und 9600 erkennen.
Ist ein Anschluß bidirektional konfiguriert, können Benutzer über
diese Schnittstelle Dienste in Anspruch nehmen. Ist der Anschluß frei,
erlaubt ttymon den Kommandos uucico, cu bzw. ct, ihn zum Aufbau von
Wählverbindungen zu benutzen. Wenn ein Anschluß bidirektional konfigu-
riert ist, wartet ttymon mit der Ausgabe eines Prompts, bis es ein
Zeichen gelesen hat.
Ist für einen Anschluß das Flag connect-on-carrier gesetzt, ruft tty-
mon den dem Anschluß zugeordneten Dienst sofort auf, sobald eine Ver-
bindungsanforderung eintrifft. Die Prompt-Meldung wird nicht ausgege-
ben.
Ist ein Anschluß deaktiviert, startet ttymon keinen Dienst auf diesem
Anschluß. Wurde eine Meldung für den deaktivierten Zustand angegeben,
sendet ttymon diese Meldung, sobald eine Verbindungsanforderung ein-
trifft. Ist ttymon deaktiviert, werden auch alle Anschlüsse deakti-
viert, die dieser Prozeß bedient.
Aufruf von Diensten
In der Verwaltungsdatei von ttymon ist angegeben, welchen Dienst tty-
mon für einen Anschluß aufruft. ttymon sucht in der Zeichenkette, die
den für diesen Anschluß aufzurufenden Dienst angibt, nach der Folge %d
oder %%. Trifft es auf %d, ändert ttymon das Dienstkommando, das aus-
geführt werden soll, indem es diese zwei Zeichen durch den vollständi-
gen Pfadnamen dieses Anschlusses (den Gerätenamen) ersetzt. Trifft es
auf %%, so ersetzt ttymon diese Zeichenfolge durch ein einzelnes %.
Beim Aufruf des Dienstes werden für das angeschlossene Gerät die
Dateideskriptoren 0, 1 und 2 zum Lesen und Schreiben geöffnet. Der
Dienst wird mit derjenigen Benutzer- und Gruppennummer sowie dem aktu-
ellen HOME-Dateiverzeichnis aufgerufen, die bzw. das zu der Benutzer-
kennung gehört, unter welcher der Dienst bei ttymon registriert wurde.
ttymon fügt die beiden Umgebungsvariablen HOME und TTYPROMPT zur Umge-
bung des Dienstes hinzu. HOME wird auf das HOME-Dateiverzeichnis der-
jenigen Benutzerkennung gesetzt, unter welcher der Dienst aufgerufen
wurde. TTYPROMPT wird auf die Prompt-Zeichenkette gesetzt, die für den
Dienst konfiguriert ist, der diesem Anschluß zugeordnet ist. Dies
dient dazu, daß ein von ttymon aufgerufener Dienst feststellen kann,
ob ttymon einen Prompt ausgegeben hat, und, falls ja, wie dieser lau-
tete.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
ttymon(1M) ttymon(1M)
Ist für den Dienst NONE angegeben, wird kein Dienst gestartet. ttymon
hält in diesem Fall lediglich die Schnittstelle offen, bis ein SIGHUP
an der Schnittstelle auftritt. Dann wird der Anschluß wieder in den
Anfangszustand gebracht.
Unter ttyadm(1M) finden Sie Optionen, die für Anschlüsse gesetzt wer-
den können, welche von ttymon unter dem SAC überwacht werden.
Wiederholtes Starten von Diensten
In /etc/default/ttymon kann mit drei Variablen das wiederholte Starten
von Diensten bzw. Initialisieren von Anschlüssen beinflußt werden.
Wenn SPAWNLIMIT positiv ist und innerhalb von SPAWNINTERVAL Sekunden
ein Dienst SPAWNLIMIT oft initialisiert werden muß, wird er für
SPAWNINHIBIT Sekunden suspendiert, bevor wieder versucht wird, den
Anschluß zu initialisieren. Sollte SPAWNINHIBIT = 0 sein, so wird der
Dienst solange suspendiert, bis jemand das Kommando sacadm -p pmtag -x
absetzt.
Umgebungsvariablen
Der ttymon läßt sich mittels Umgebungsvariablen konfigurieren. Die
Variablen werden vorzugsweise in der monitor-spezifischen Konfigurati-
onsdatei /etc/saf/pmtag/config gesetzt [siehe doconfig(3C)]. Die fol-
genden Variablen werden erkannt:
TMSERVREPORT Wenn auf "off" gesetzt, wird das Starten eines
Dienstes nicht in der Logdatei protokolliert. Stan-
dard ist "on".
TMOPENTIME Zeit in Millisekunden, die die Initialisierung
eines Anschlusses benötigen darf. Kann die Initia-
lisierung nicht in dieser Zeit abgeschlossen wer-
den, wird der Anschluß geschlossen und eventuell
später ein erneuter Versuch unternommen. Wenn
TMOPENTIME nicht gesetzt ist, wird TMOPENTIME =
1900 gesetzt.
TMDELAYTIME Zeit in Sekunden, für die ein Dienst suspendiert
wird, wenn am zugehörigen Anschluß ein Fehler auf-
trat, bevor erneut versucht wird, den Anschluß zu
initialisieren. Der Wert darf nicht negativ sein.
Wenn dies nicht der Fall ist oder wenn
TMDELAYTIME nicht nicht gesetzt ist, wird
TMDELAYTIME = 5 gesetzt. Man beachte, daß durch
diese Variable das wiederholte Starten von Diensten
im Fehlerfall beeinflußt wird, vgl. Abschnitt oben.
Aufruf eines unabhängigen ttymon-Prozesses
Die Option -g dient einer speziellen Anwendung von ttymon für Anwen-
dungen, die nicht unter dem SAC vorkonfiguriert werden können. Diese
Form des Kommandos sollte nur von Anwendungen aufgerufen werden, die
die richtige Übertragungsgeschwindigkeit und die richtigen Termina-
leinstellungen für einen Anschluß einstellen und dann eine Verbindung
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
ttymon(1M) ttymon(1M)
zum login-Dienst herstellen müssen. Mit der Option -g können die fol-
genden Optionen kombiniert werden:
-d device device ist der vollständige Pfadname des Anschlusses, den
ttymon überwachen soll. Wird diese Option nicht angege-
ben, muß der aufrufende Prozeß den Dateideskriptor 0 auf
einen TTY-Anschluß setzen.
-h Ist die Option -h nicht gesetzt, erzwingt ttymon einen
Hängezustand für die Leitung, indem es die Geschwindig-
keit auf null setzt, bevor es sie auf den Standardwert
oder angegebenen Wert setzt.
-t timeout Gibt an, daß ttymon sich beenden soll, wenn in einer
Zeitspanne von timeout Sekunden nach der Ausgabe des
Prompts keine Eingabedaten empfangen wurden.
-l ttylabel ttylabel ist ein Verweis auf eine Geschwindigkeit und
TTY-Definition in der Datei ttydefs. ttymon entnimmt die-
ser Definition die anfängliche Geschwindigkeit, die
anfänglichen TTY-Einstellungen und die nächste Geschwin-
digkeit, die es ausprobieren soll, falls der Benutzer
durch Drücken der BREAK-Taste anzeigt, daß die Geschwin-
digkeit falsch ist. Das Standardlabel ist 9600 Baud.
-p prompt Der Benutzer kann hier eine Prompt-Zeichenkette eingeben.
Der Standard-Prompt lautet "Login: ".
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
ttymon(1M) ttymon(1M)
-m modules Bei der Initialisierung des Anschlusses entfernt ttymon
alle Module vom Anschluß. Dann legt es die unter modules
angegebenen Module in der angegebenen Reihenfolge auf den
Stream des Anschlusses. modules ist eine Liste mit Modu-
len, die durch Kommata voneinander getrennt sind und auf
einen Stream gelegt werden können. Standardmodule für
Anschlüsse werden normalerweise von der Autopush Facility
eingerichtet.
HINWEISE
Wenn ein Anschluß von mehreren ttymon-Prozessen überwacht wird, können
mehrere Prompts ausgegeben werden, die zu Überschneidungen beim Abru-
fen der Eingabe führen.
Wenn im Falle des Flags pre-prompt-config in der monitor-spezifischen
Konfigurationsdatei Variablen gesetzt werden, so sollte dies vor dem
ersten run- bzw. runwait-Kommando geschehen.
SIEHE AUCH
pmadm(1M), sac(1M), sacadm(1M), sttydefs(1M), ttyadm(1M).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98