Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ doconfig(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sh(1)

pmadm(1M)

sacadm(1M)

doconfig(3C)                                                   doconfig(3C)

NAME
     doconfig - Konfigurationsskript ausführen

SYNTAX
     #include <sac.h>

     int doconfig(int fd, char *script, long rflag);

BESCHREIBUNG
     doconfig ist eine SAF (Service Access Facility)-Bibliotheksfunktion,
     die Konfigurationsskripte interpretiert, die sich in den Dateien
     /etc/saf/pmtag/config, /etc/saf/sysconfig und /etc/saf/pmtag/svctag
     befinden.

     script ist der Name des Konfigurationsskripts. fd ist ein Dateide-
     skriptor, der den Stream festlegt, auf den Stream-Operationen angewen-
     det werden sollen. rflag ist eine Bitmaske, die den Modus festlegt, in
     dem script interpretiert werden soll. rflag kann zwei Werte, NORUN und
     NOASSIGN, annehmen, die durch ein ODER verknüpft werden können. Wenn
     rflag Null ist, sind alle Kommandos im Konfigurationsskript zu inter-
     pretieren. Wenn rflag das Bit NOASSIGN gesetzt hat, ist das Kommando
     assign nicht erlaubt, und es wird ein Fehler zurückgegeben. Wenn rflag
     das Bit NORUN gesetzt hat, sind die Kommandos run und runwait nicht
     erlaubt, und es wird ein Fehler zurückgegeben.

     Die Konfigurationssprache, in der script geschrieben ist, besteht aus
     einer Sequenz von Kommandos, wovon jedes Kommando einzeln interpre-
     tiert wird. Folgende Schlüsselwörter sind definiert: assign, push,
     pop, runwait und run. Das Kommentarzeichen ist ein #. Wenn ein # in
     einer Zeile auftaucht, wird alles von dieser Stelle an bis zum Zeilen-
     ende ignoriert. Leerzeilen haben keine Bedeutung. Keine Zeile eines
     Kommandoskripts darf mehr als 1024 Zeichen besitzen.

     assign variable=value
          Dies wird für die Definition von Umgebungsvariablen verwendet.
          variable ist der Name der Umgebungsvariable und value ist der
          Wert, der ihr zugewiesen werden soll. Der zugewiesene Wert muß
          eine String-Konstante sein. Es besteht keine Möglichkeit der
          Parameterersetzung. Der Wert value kann in Anführungszeichen ste-
          hen. Die Regeln für das Setzen von Anführungszeichen sind die der
          Shell für die Definition von Umgebungsvariablen. assign schei-
          tert, wenn kein Speicherplatz für die neue Variable angelegt wer-
          den kann, oder falls irgendein Teil der Angaben ungültig ist.

     push module1[, module2, module3, ...]
          Dies wird verwendet, um STREAMS-Module auf den Stream-Stack zu
          legen (push), der durch fd festgelegt ist. module1 ist der Name
          des Moduls, das zuerst auf den Stack gelegt wird, module2 ist der
          Name des zweiten Moduls, usw. Das Kommando scheitert, falls
          irgendeines der Module nicht auf dem Stack abgelegt werden kann.
          Wenn ein Modul nicht abgelegt werden kann, werden die nachfolgend
          genannten Module in der Kommandozeile einfach ignoriert und die



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

doconfig(3C)                                                   doconfig(3C)

          Module, die bereits abgelegt wurden, werden wieder vom Stack
          genommen (pop).

     pop [module]
          Dies wird verwendet, um STREAMS-Module vom angegebenen Stream-
          Stack herunterzunehmen (pop). Falls pop ohne Argumente aufgerufen
          wird, wird das oberste Modul vom Stream-Stack genommen. Wenn ein
          Argument angegeben wird, werden Module einzeln vom Stream-Stack
          genommen, bis das angegebene Modul sich an oberster Stelle befin-
          det. Falls sich das Modul nicht in dem angegebenen Stream befin-
          det, bleibt der Stream unverändert, und das Kommando scheitert.
          Falls module das spezielle Schlüsselwort ALL ist, werden alle
          Module vom Stream-Stack heruntergenommen. Beachten Sie, daß nur
          Module, die sich oberhalb des obersten Treibers befinden, beein-
          flußt werden.

     runwait command
          Das Kommando runwait läßt ein Kommando ablaufen und wartet auf
          dessen Beendigung. command ist der Pfadname des Kommandos, das
          gestartet werden soll. /usr/bin/sh -c läßt das Kommando ablaufen.
          Shell-Skripts können daher aus Konfigurationsskripten heraus aus-
          geführt werden. Das Kommando runwait scheitert, wenn command
          nicht gefunden oder nicht ausgeführt werden kann oder wenn
          command mit einem Wert zurückkehrt, der ungleich Null ist.

     run command
          Das Kommando run ist identisch mit runwait, bis auf den einzigen
          Unterschied, daß es nicht wartet, bis das Kommando command been-
          det ist. command ist der Pfadname des Kommandos, das ausgeführt
          werden soll. run scheitert nur dann, wenn es nicht in der Lage
          ist, einen Sohnprozeß für die Ausführung des Kommandos zu erzeu-
          gen.

     Obgleich sie syntaktisch nicht zu unterscheiden sind, sind einige Kom-
     mandos, die run und runwait zur Verfügung stehen, eingebaute Interpre-
     ter-Kommandos. Eingebaute Interpreter-Kommandos werden benutzt, wenn
     es erforderlich ist, den Prozeßzustand innerhalb dieses Prozeßkontex-
     tes zu ändern. Die eingebauten Interpreter-Kommandos von doconfig sind
     den speziellen Shell-Kommandos sehr ähnlich. Und ebenso wie diese
     Shell-Kommandos, starten sie für die Ausführung keinen anderen Prozeß.
     Sehen Sie dazu nach unter sh(1). Die anfängliche Menge an eingebauten
     Kommandos ist:

          cd
          ulimit
          umask








Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

doconfig(3C)                                                   doconfig(3C)

DIAGNOSE
     doconfig liefert 0 zurück, wenn das Skript erfolgreich interpretiert
     wurde. Falls ein Kommando im Skript scheitert, wird die Interpretation
     des Skripts an dieser Stelle beendet, und es wird eine positive Zahl
     zurückgegeben. Diese Zahl zeigt an, welche Zeile im Skript gescheitert
     ist. Falls ein Systemfehler auftritt, wird der Wert -1 zurückgelie-
     fert. Wenn ein Skript scheitert, sollte der Prozeß, dessen Umgebung
     eingerichtet wurde, nicht gestartet werden.

SIEHE AUCH
     sh(1), pmadm(1M), sacadm(1M).











































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026