Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ init(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

login(1)

sh(1)

stty(1)

who(1)

shutdown(1M)

ttymon(1M)

kill(2)

inittab(4)

utmp(4)

utmpx(4)

termio(7)

init(1M)                                                           init(1M)

NAME
     init, telinit - Prozeßsteuerung initialisieren

SYNTAX
     /sbin/init [0123456SsQqabc]

     /sbin/telinit [0123456SsQqabc]

BESCHREIBUNG
   init
     init ist ein allgemeines Programm zur Prozeßerzeugung. Seine Hauptauf-
     gabe ist die Erzeugung von Prozessen aus Daten, die in der Datei
     /etc/inittab gespeichert sind [siehe inittab(4)].

     Das System befindet sich immer in einem von acht möglichen Betriebszu-
     ständen. Ein Betriebszustand ist eine Software-Konfiguration des
     Systems, in der nur eine ausgewählte Gruppe von Prozessen existiert.
     Die Prozesse, die von init für jeden dieser Betriebszustände erzeugt
     werden, sind in der Datei /etc/inittab definiert. Für init gibt es die
     folgenden acht Betriebszustände: 0-6 und S oder s (die Betriebszu-
     stände S und s sind identisch). Der Betriebszustand ändert sich, wenn
     ein dazu berechtigter Benutzer /sbin/init aufruft. Dieses vom Benutzer
     erzeugte init sendet Signale an das ursprüngliche init, das vom
     Betriebssystem beim Laden des Systems erzeugt wurde. Die Signale über-
     mitteln ihm, in welchen Betriebszustand es wechseln soll.

OPTIONEN
     0    Schaltet das System ab, so daß die Stromversorgung unterbrochen
          werden kann.

     1    Bringt das System in Systemverwalter-Modus. Alle Dateisysteme
          sind eingehängt. Nur eine kleine Menge von wichtigen Kernprozes-
          sen sind noch aktiv. Dieser Modus ist für Verwaltungsaufgaben,
          z. B. die Installation von optionalen Dienstprogramm-Paketen,
          gedacht. Es kann auf alle Dateien zugegriffen werden. Es sind
          keine Benutzer am System angemeldet.

     2    Bringt das System in Mehrbenutzer-Modus. Alle Terminalprozesse
          und Dämons für eine Mehrbenutzerumgebung werden erzeugt. Diesen
          Zustand nennt man häufig den Mehrbenutzer-Betrieb.

     3    Startet die RFS-Prozesse (RFS = Remote File Sharing) und Dämons.
          Hängt Remote-Ressourcen ein und macht sie bekannt. Der Betriebs-
          zustand 3 erweitert den Mehrbenutzer-Modus und wird als RFS-
          Zustand bezeichnet.

     4    Dient als alternative Konfiguration für eine Mehrbenutzer-Umge-
          bung. Diese Operation ist für den Systembetrieb nicht notwendig
          und wird daher gewöhnlich nicht benutzt.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

init(1M)                                                           init(1M)

     5    Stoppt das Betriebssystem Reliant UNIX und wechselt zur SASH
          (Stand-alone shell) [bei RM600] bzw. in den PROM-Monitor [bei
          RM400].

     6    Stoppt das Betriebssystem Reliant UNIX und lädt das System neu,
          und zwar mit dem Zustand, der im Eintrag initdefault in der Datei
          /etc/inittab definiert ist.

     a, b, c
          Verarbeitet nur diejenigen /etc/inittab-Einträge, bei denen der
          Betriebszustand a, b oder c eingestellt ist. Dabei handelt es
          sich um Pseudozustände, die für bestimmte Kommandos definiert
          werden können, die aber keine Änderung des aktuellen Betriebszu-
          stands bewirken.

     Q, q Überprüft /etc/inittab nochmals.

     S, s Aktiviert den Einbenutzer-Modus. Dadurch wird das Terminal, das
          dieses Kommando ausgeführt hat, zur Systemkonsole. Dies ist der
          einzige Betriebszustand, für den keine ordnungsgemäß formatierte
          Datei /etc/inittab erforderlich ist. Existiert diese Datei nicht,
          so kann init standardmäßig nur den Einbenutzer-Modus als zulässi-
          gen Betriebszustand verwenden. Ist diese Datei dagegen vorhanden,
          sucht init nach Kommandos in /etc/inittab, die zum Einbenutzer-
          Betrieb gehören. Wird das System mit S oder s gestartet, werden
          keine Dateisysteme für Benutzerdateien eingehängt und nur wich-
          tige Kernprozesse werden ausgeführt. Wird das System auf S oder s
          hinuntergesetzt, bleiben alle eingehängten Dateisysteme einge-
          hängt, und alle von init gestarteten Prozesse, die nur im Mehrbe-
          nutzer-Modus ablaufen sollen, werden abgebrochen. Darüber hinaus
          wird jeder Prozeß mit einem utmp-Eintrag abgebrochen. Die letzte
          Bedingung stellt sicher, daß alle vom SAC (Service Access Con-
          troller, Steuerprogramm für den Zugriff auf Dienste) gestarteten
          Anschlußüberwachungsprogramme sowie alle von diesen gestarteten
          Dienste, einschließlich den ttymon-Anmeldediensten, abgebrochen
          werden. Andere Prozesse, die nicht direkt von init gestartet wur-
          den, bleiben aktiv. Dazu gehört beispielsweise cron.

     Beim Laden des Betriebssystems Reliant UNIX wird init aufgerufen, und
     die folgenden Schritte werden ausgeführt. Zuerst sucht init in der
     Datei /etc/inittab nach dem Eintrag initdefault [siehe inittab(4)].
     Ist dieser vorhanden, benutzt init normalerweise den darin angegebenen
     Betriebszustand als anfänglichen Betriebszustand. Existiert aber kein
     initdefault-Eintrag in der Datei /etc/inittab, bittet init den Benut-
     zer um Eingabe eines Betriebszustands an der virtuellen Systemkonsole.
     Gibt dieser nun ein S oder s ein, geht init in den Einbenutzer-Be-
     trieb. In diesem Betriebszustand wird die virtuelle Konsole dem Termi-
     nal des Benutzers zugewiesen und zum Lesen und Schreiben geöffnet. Das
     Kommando /sbin/su wird aufgerufen und auf der physischen Konsole wird
     eine Meldung erzeugt, die angibt, wohin die virtuelle Konsole zugewie-
     sen wurde. Sie können entweder mit init oder mit telinit dem Kommando
     init signalisieren, daß es den Betriebszustand des Systems verändern


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

init(1M)                                                           init(1M)

     soll. Beachten Sie, daß init nur den Einbenutzer-Betrieb wiederher-
     stellt, wenn die Shell (durch ein Dateiende) beendet wurde und die
     Datei /etc/inittab nicht existiert.

     Gibt aber der Benutzer Werte zwischen 0 und 6 (einschließlich) ein,
     aktiviert init den entsprechenden Betriebszustand. Die Betriebszu-
     stände 0, 5 und 6 sind reservierte Zustände zum Herunterfahren des
     Systems. Die Betriebszustände 2, 3 und 4 stehen als Mehrbenutzer-
     Betriebszustände zur Verfügung.

     Ist init zum ersten Mal seit dem Einschalten in einen anderen
     Betriebszustand als den Einbenutzer-Betrieb gegangen, so sucht es
     zuerst in der Datei /etc/inittab nach den Einträgen boot und bootwait
     [siehe inittab(4)]. Diese Einträge werden vor jeder weiteren Verarbei-
     tung von /etc/inittab ausgeführt, vorausgesetzt, der eingegebene
     Betriebszustand entspricht dem Zustand im Eintrag. Auf diese Weise
     kann eine spezielle Initialisierung des Betriebssystems, beispiels-
     weise das Einhängen von Dateisystemen, stattfinden, bevor Benutzer mit
     dem System arbeiten. init durchsucht dann /etc/inittab und führt alle
     anderen Einträge aus, die für den gewählten Betriebszustand verarbei-
     tet werden müssen.

     Um alle Prozesse in /etc/inittab zu erzeugen, liest init alle Einträge
     und legt für jeden Eintrag, der neu erzeugt werden sollte, einen Sohn-
     prozeß an. Wenn alle in /etc/inittab angegebenen Prozesse erzeugt
     sind, wartet init darauf, daß einer seiner Folgeprozesse beendet wird
     oder daß ein Stromausfallsignal bzw. ein Signal eines anderen init-
     oder telinit-Prozesses den Betriebszustand des Systems ändert. Tritt
     eine dieser Bedingungen ein, überprüft init die Datei /etc/inittab
     nochmals. Zu der Datei /etc/inittab können nämlich jederzeit neue Ein-
     träge hinzugefügt werden; allerdings wartet init mit der Überprüfung
     der Datei /etc/inittab immer, bis eine der drei oben genannten Bedin-
     gungen auftritt. Wollen Sie dies umgehen, so können Sie das Kommando
     init Q oder init q verwenden. Diese aktivieren init, das dann sofort
     eine Überprüfung der Datei /etc/inittab durchführt.

     Wenn init beim Laden des Systems aktiviert wird oder wenn das System
     vom Einbenutzer-Betrieb in einen anderen Betriebszustand wechselt,
     setzt init die ioctl(2)-Zustände der virtuellen Konsole auf diejenigen
     Zustände, die in der Datei /etc/ioctl.syscon gespeichert sind. init
     schreibt immer dann in diese Datei, wenn der Einbenutzer-Betrieb akti-
     viert wird.

     Wird eine Aufforderung zum Wechseln des Betriebszustands eingegeben,
     sendet init ein Warnsignal (SIGTERM) an alle Prozesse, die im Ziel-
     Betriebszustand undefiniert sind. init wartet fünf Sekunden, bevor es
     diese Prozesse mit dem Abbruchsignal SIGKILL zwangsweise beendet.







Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

init(1M)                                                           init(1M)

     Wird init über ein Signal gemeldet, daß einer der von ihm erzeugten
     Prozesse beendet wurde, schreibt es dies zusammen mit dem Grund für
     die Beendigung in die Datei(en) /var/adm/utmp und /var/adm/wtmp,
     sofern vorhanden [siehe who(1)]. In der Datei /var/adm/wtmp wird ein
     Protokoll der erzeugten Prozesse aufbewahrt. Kann auf /var nicht zuge-
     griffen werden, schreibt init die Informationen in temporäre Dateien
     im Dateisystem /stand. Dadurch werden die Informationen gespeichert,
     bis wieder auf /var zugegriffen werden kann. (Es gehen also keine
     Informationen verloren.)

     Erhält init ein powerfail-Signal (SIGPWR), das einen Stromausfall mel-
     det, durchsucht es /etc/inittab nach speziellen Einträgen des Typs
     powerfail und powerwait. Diese Einträge werden aufgerufen (sofern der
     Betriebszustand dies erlaubt), bevor eine weitere Verarbeitung statt-
     findet. Auf diese Weise kann init verschiedene Bereinigungs- und Auf-
     zeichnungsfunktionen ausführen, während das Betriebssystem abgeschal-
     tet ist.

   telinit
     telinit ist mit /sbin/init verbunden und wird zum Steuern der Aktionen
     von init verwendet. Es benötigt ein Argument, das aus einem Zeichen
     besteht, und signalisiert init, welche Aktion es ausführen soll.

DIAGNOSE
     Stellt init fest, daß es einen Eintrag aus der Datei /etc/inittab mehr
     als zehnmal innerhalb von zwei Minuten erzeugt hat, nimmt es an, daß
     die Kommandozeile in diesem Eintrag Fehler enthält und gibt eine Feh-
     lermeldung auf der Systemkonsole aus. Es erzeugt dann diesen Eintrag
     erst wieder nach einer Wartezeit von fünf Minuten oder wenn es ein
     Signal eines von einem Benutzer erzeugten init- oder telinit-Kommandos
     erhält. Dies verhindert, daß init Systemressourcen unnötig verbraucht,
     wenn ein Tippfehler in der Datei inittab vorliegt oder ein Programm
     entfernt wurde, auf das in /etc/inittab verwiesen wird.

     Beim Starten des Systems kann es vorkommen, daß init nicht zur Eingabe
     eines neuen Betriebszustands auffordert, weil beispielsweise die vir-
     tuelle Systemkonsole mit einem anderen Gerät als der physischen
     Systemkonsole verbunden ist.

HINWEISE
     init und telinit dürfen nur von einem dazu berechtigten Benutzer ver-
     wendet werden.

     init kehrt vom Einbenutzer-Betrieb zurück, ohne daß /var eingehängt
     ist. Typischerweise führt init ein Skript der Form /sbin/rcN aus, um
     den Betriebszustand N (über /etc/inittab) zu aktivieren. Diese Skripts
     führen wiederum Skripts aus, und zwar solche der Form /etc/rcN.d/[KS]*.
     /sbin/rcN-Skripts wurden dahingehend geändert, daß sie den Fehlerzu-
     stand 100 aus den /etc/rcN.d/[KS]*-Skripts als schwerwiegenden Fehler
     erkennen. Sie aktivieren dann den Einbenutzer-Betrieb für das System.




Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

init(1M)                                                           init(1M)

     Der Zustand S oder s darf in der Datei /etc/inittab nicht willkürlich
     verwendet werden. Beim Ändern dieser Datei empfiehlt es sich, diesen
     Zustand nur in der Zeile initdefault einzugeben. Allerdings ist dies
     von Installation zu Installation verschieden. Im Einbenutzer-Betrieb
     kann mehr ausgeführt werden, indem die Datei /etc/inittab mit korrek-
     ten Einträgen aktualisiert wird.

     Wird im Eintrag initdefault in der Datei /etc/inittab kein Standardzu-
     stand angegeben, so wird der Zustand 0 aktiviert. Daraufhin schaltet
     sich das System aus.

     Kann beim Laden des Systems die Datei utmp im Dateisystem /var nicht
     erzeugt werden, wird eine Datei utmp im Dateisystem /stand erzeugt.
     Diese wird dann später in das Dateisystem /var verschoben, wenn dieses
     eingehängt ist. Der Systemverwalter kann dies leicht nachvollziehen.
     Es ist hierbei völlig gleichgültig, ob das Dateisystem /var beim Laden
     des Systems eingehängt ist oder nicht.

     Wenn Sie mit einem System arbeiten, bei dem der Kern Argumente beim
     Laden des Systems an init (Haupt-init) übergeben darf, so sind die
     folgenden Argumente zulässig:

     -l #      Die Option -l benötigt eine Zahl, die den init-Betriebszu-
               stand bezeichnet. Gültig sind hierbei: 123456sS, standardmä-
               ßig wird der Einbenutzer-Betrieb aktiviert, falls irgendein
               anderer Wert eingegeben wurde.

     -s, -S    Aktiviert den Einbenutzer-Betrieb.

     -a        Bittet um Eingabe eines neuen Zustands, wobei der im
               initdefault-Eintrag der Datei /etc/inittab definierte
               Zustand ignoriert wird.

     -n        Bevor ein Zustand aktiviert wird, wird eine neue Shell
               erzeugt. Wird dies im Einbenutzer-Betrieb verwendet,
               geschieht dies weit bevor der Einbenutzer-Betrieb aufgerufen
               wird. Hiermit kann der Systemverwalter Korrekturen vorneh-
               men.

     -x #      Dies umgeht den Zustand der Fehlersuche. init muß Einträge
               an /etc/debug anhängen. An diese Datei hängt init immer Ein-
               träge an. Sie wird von init nie gelöscht. Diese Datei sollte
               gelöscht werden, sobald die Fehler bei init beseitigt sind
               oder nachdem Einträge in /etc/inittab geändert wurden.

     -v #      Dies definiert INITVERBOSE=1 in einer globalen Umgebung für
               Sohnprozesse von init.







Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

init(1M)                                                           init(1M)

DATEIEN
     /etc/inittab

     /var/adm/utmp

     /var/adm/wtmp

     /etc/ioctl.syscon

     /dev/console

SIEHE AUCH
     login(1), sh(1), stty(1), who(1), shutdown(1M), ttymon(1M), kill(2),
     inittab(4), utmp(4), utmpx(4), termio(7).








































Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

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