Provided by: manpages-de_2.16-1_all bug

BEZEICHNUNG

       init, telinit - Initialisierung der Prozesssteuerung

ÜBERSICHT

       /sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
       /sbin/init [ --version ]
       /sbin/telinit [ -t SEKUNDEN ] [ 0123456sSQqabcUu ]
       /sbin/telinit [ -e VAR[=WERT] ]

BESCHREIBUNG

   Init
       Init  ist der Elternprozess aller Prozesse. Seine Hauptaufgabe besteht darin, Prozesse aus
       einem Skript in der Datei /etc/inittab zu erzeugen (siehe auch  inittab(5)).  Diese  Datei
       hat  normalerweise  Einträge,  die  init  dazu  veranlassen  auf  jeder  Leitung gettys zu
       erzeugen, auf der sich ein Benutzer einloggen kann.  Er  steuert  auch  alle  unabhängigen
       Prozesse, die von einem bestimmten System benötigt werden.

RUNLEVEL

       Ein  Runlevel  ist  eine Software-Konfiguration des Systems, der es nur einer ausgewählten
       Gruppe von Prozessen erlaubt, ausgeführt zu werden. Die Prozesse, die von init  für  jeden
       dieser  Runlevel  erzeugt  werden,  sind in der Datei /etc/inittab definiert. Init kann in
       einem von acht Runleveln sein: 0-6 und S (auch s). Init wechselt den  Runlevel,  wenn  ein
       privilegierter  Benutzer  das  Programm  /sbin/telinit  startet, das init passende Signale
       sendet, die ihm mitteilen, in welchen Runlevel es wechseln soll.

       Die Runlevel S, 0, 1 und 6 sind reserviert. Der Runlevel S wird  benutzt,  um  das  System
       beim Start zu initialisieren. Wenn Runlevel S (beim Start) oder Runlevel 1 (umschalten von
       einem   Mehrbenutzer-Runlevel)   gestartet   wird,   wechselt   das    System    in    den
       »Einzelbenutzermodus«,  nach  dem der aktuelle Runlevel S ist. Runlevel 0 wird benutzt, um
       das System zu stoppen, Runlevel 6 startet das System neu.

       Nach dem Starten durch S tritt das System automatisch in die Mehrbenutzer-Runlevel 2 bis 5
       ein, falls es dort kein Problem gibt, das vom Administrator im Einzelbenutzermodus behoben
       werden   muss.   Normalerweise   führt   der   Administrator   nach   Eintreten   in   den
       Einzelbenutzermodus Wartungsarbeiten durch und startet dann das System neu.

       Lesen  Sie  die Handbuchseiten von shutdown(8) und inittab(5), um weitere Informationen zu
       erhalten.

       Die Runlevel 7-9 sind ebenfalls gültig, wenngleich nicht wirklich dokumentiert.  Dies  ist
       deshalb so, weil »traditionelle« Unix-Varianten sie nicht benutzen.

       Die Runlevel S und s sind identisch. Intern sind sie Aliase für den gleichen Runlevel.

SYSTEMSTART

       Nachdem  init  im  letzten  Schritt  des Startprozesses aufgerufen wird, sucht es nach der
       Datei /etc/inittab und sieht nach,  ob  es  dort  einen  initdefault-Eintrag  gibt  (siehe
       inittab(5)).  Der  Eintrag initdefault bestimmt den Anfangs-Runlevel des Systems. Falls es
       dort keinen derartigen Eintrag gibt (oder gar keine  inittab-Datei  existiert),  muss  der
       Runlevel in der Systemkonsole eingegeben werden.

       Die Runlevel S oder s initialisieren das System und benötigen keine /etc/inittab-Datei.

       Im Einzelbenutzermodus wird /sbin/sulogin auf /dev/console aufgerufen.

       Beim  Eintritt  in  den  Einzelbenutzermodus initialisiert init die stty-Einstellungen der
       Konsolen auf vernünftige Werte. Der »Clocal«-Modus wird gesetzt.  Hardware-Geschwindigkeit
       und Datenflusssteuerung werden nicht geändert.

       Beim  ersten  Eintritt in den Mehrbenutzermodus führt init die boot- und bootwait-Einträge
       aus, um das Einhängen von Dateisystemen zu erlauben, bevor Anwender sich anmelden  können.
       Dann werden alle Einträge, die zum Runlevel passen, verarbeitet.

       Wenn  ein  neuer  Prozess  gestartet wird, prüft init zuerst, ob die Datei /etc/initscript
       existiert. Ist dies der Fall, benutzt es dieses Skript, um den Prozess zu starten.

       Jedesmal, wenn ein Kindprozess endet, zeichnet init  diesen  Umstand  und  den  Grund  der
       Beendigung in /var/run/utmp und /var/log/wtmp auf, sofern diese Dateien existieren.

RUNLEVEL ÄNDERN

       Nachdem  alle  vorgesehenen  Prozesse  erzeugt  worden  sind, wartet init darauf, dass ein
       untergeordneter Prozess endet, ein Stromausfallsignal  oder  darauf,  dass  telinit  einen
       Wechsel  des Runlevels signalisiert. Wenn eine der drei oben genannten Bedingungen erfüllt
       ist, untersucht init nochmals die /etc/inittab-Datei. Es können jederzeit neue Einträge zu
       dieser Datei hinzugefügt werden. Jedoch wartet init immer noch darauf, dass einer der drei
       oben genannten Bedingungen eintritt. Um eine sofortige Antwort bereitzustellen, können die
       Befehle  telinit  Q oder q init aufwecken, um die Datei /etc/inittab erneut zu prüfen (neu
       zu laden).

       Falls init sich nicht im Einzelbenutzermodus befindet, und ein Stromausfallsignal (SIGPWR)
       empfängt,  liest  es  die  Datei /etc/powerstatus. Anschließend wird ein Befehl anhand des
       Inhalts der Datei gestartet:

       F(EHLSCHLAG)
              Strom fällt aus, die USV  versorgt  den  Rechner  mit  Strom.  Die  powerwait-  und
              powerfail-Einträge werden ausgeführt.

       O(K)   Stromkreis wurde wieder geschlossen, die powerokwait-Einträge werden ausgeführt.

       L(OW/niedrig)
              Strom  fällt  aus  und der Ladestand der USV ist niedrig. Die powerfailnow-Einträge
              werden ausgeführt.

       Wenn /etc/powerstatus nicht existiert oder etwas anderes enthält als die Buchstaben  F,  O
       oder L, wird Init sich so verhalten, als hätte es den Buchstaben F gelesen.

       Die Verwendung von SIGPWR und /etc/powerstatus werden nicht empfohlen. Wenn etwas mit init
       interagieren möchte, sollte der Steuerkanal /run/initctl verwendet werden - lesen Sie  die
       Handbuchseite von Initctl, um weitere Dokumentation darüber zu erhalten.

       Falls  init  die  Aufforderung  zum Wechsel des Runlevels erhält, sendet es das Warnsignal
       SIGTERM an alle nicht im neuen Runlevel definierten Prozesse. Dann wartet es drei Sekunden
       bevor  es  diese  Prozesse  gewaltsam  per Signal SIGKILL beendet. Beachten Sie, dass init
       davon ausgeht, dass diese Prozesse (und ihre Unterprozesse) in der gleichen  Prozessgruppe
       verbleiben,   die   init   ursprünglich   für  sie  erstellt  hatte.  Wenn  Prozesse  ihre
       Gruppenzugehörigkeit andern, werden Sie diese Signale  nicht  empfangen.  Solche  Prozesse
       müssen separat beendet werden.

TELINIT

       /sbin/telinit  ist  mit  /sbin/init  verknüpft. Es empfängt Argumente aus einem Buchstaben
       oder init-Signale, um die zugehörige Aktion durchzuführen. Die folgenden Argumente  dienen
       als Anweisungen für telinit:

       0,1,2,3,4,5 oder 6
              init mitteilen, in den angegebenen Runlevel zu schalten.

       a,b,c  init  mitteilen, nur die Einträge in der Datei /etc/inittab zu verarbeiten, die den
              Runlevel a, b oder c haben.

       Q oder q
              init mitteilen, die Datei /etc/inittab erneut zu prüfen.

       S oder s
              init mitteilen, in den Einzelbenutzermodus zu wechseln.

       U oder u
              init mitteilen, sich selbst erneut (unter Beibehalten des Status)  auszuführen.  Es
              kommt  zu  keiner  erneuten  Ausführung der Datei /etc/inittab. Der Runlevel sollte
              einer aus Ss0123456 sein, anderenfalls wird die Anfrage stillschweigend ignoriert.

       telinit kann dem init-Prozess mitteilen, wieviel  Zeit  dieser  zwischen  dem  Senden  der
       Signale  SIGTERM  und  SIGKILL  warten soll. Die Vorgabe ist drei Sekunden, dies kann aber
       durch die Option -t geändert werden.

       telinit -e weist init an die Umgebung für Prozesse zu ändern, die es erzeugt. Das Argument
       von  -e  ist  entweder  in der Form VAR=WERT, was die Variable VAR auf den Wert WERT setzt
       oder in der FormVAR (ohne Gleichheitszeichen), was die Variable VAR leert.

       init kann nur von Benutzern mit geeigneten Rechten aufgerufen werden.

       Das Programm init prüft durch Auswerten der Prozesskennung, ob es init oder  telinit  ist.
       Der  echte  Prozess  von  init ist immer 1. Daraus folgt, dass jemand anstelle des Aufrufs
       telinit auch nur init als Abkürzung benutzen kann.

UMGEBUNGSVARIABLEN

       Init setzt folgende Umgebungsvariablen für alle seine Kindprozesse:

       PATH   /bin:/usr/bin:/sbin:/usr/sbin

       INIT_VERSION
              Wie der Name schon sagt. Nützlich, um festzulegen, ob ein Skript  direkt  von  init
              gestartet werden soll.

       RUNLEVEL
              Der aktuelle Runlevel des Systems.

       PREVLEVEL
              Der vorherige Runlevel (nützlich nach einer Änderung des Runlevels).

       CONSOLE
              Die Systemkonsole. Diese wird tatsächlich vom Kernel vererbt; wenn sie jedoch nicht
              gesetzt ist, wird init sie als Vorgabe auf /dev/console setzen.

BOOTSCHALTER

       Es ist möglich, init eine Reihe von Bootschaltern vom  Bootmonitor  aus  (z.B.  LILO  oder
       GRUB) zu übergeben. Init akzeptiert folgende Schalter:

       -s, S, single
            Bootet  im  Einzelbenutzermodus.  In  diesem Modus wird zuerst die Datei /etc/inittab
            untersucht   und    die    »rc«-Startskripte    werden    ausgeführt,    bevor    die
            Einzelbenutzer-Shell gestartet wird.

       1-5  Runlevel in den gestartet wird.

       -b, emergency
            Startet  direkt  in eine Einzelbenutzer-Shell, ohne irgendwelche anderen Startskripte
            auszuführen.

       -a, auto
            Der LILO-Bootloader fügt das Wort »auto« zur Befehlszeile hinzu, wenn der Kernel  mit
            der  Standard-Befehlszeile  (ohne  Eingriff des Anwenders) gestartet wird. Falls dies
            gefunden wird, setzt init die Umgebungsvariable »AUTOBOOT« auf »yes«.  Beachten  Sie,
            dass   Sie  die  nicht  für  irgendwelche  Sicherheitsmaßnahmen  verwenden  können  -
            selbstverständlich kann der Anwender »auto« oder »-a« manuell  auf  der  Befehlszeile
            angeben.

       -z xxx
            Das  Argument zu -z wird ignoriert. Sie können es benutzen, um die Befehlszeile etwas
            zu verlängern, damit sie etwas mehr Platz auf dem Stack reserviert.  Init  kann  dann
            die Befehlszeile derart verändern, dass ps(1) den aktuellen Runlevel anzeigt.

       --version
            Wenn  dieses  Argument  alleine verwandt wird, zeigt es die aktuelle Version von Init
            auf der Konsole/Stdout an. Dies ist eine  schnelle  Methode,  herauszufinden,  welche
            Init-Software  und  Version  verwandt wird. Nachdem die Versionsinformation angezeigt
            wurde, beendet sich Init sofort mit einem Rückgabewert von Null.

SCHNITTSTELLE

       Init lauscht auf einem fifo  in  /dev,  /run/initctl,  auf  Nachrichten.  Telinit  benutzt
       diesen,  um  mit  Init zu kommunizieren. Die Schnittstelle ist noch nicht sehr ausführlich
       dokumentiert oder fertiggestellt. Wer interessiert ist,  sollte  die  Datei  initreq.h  im
       Unterverzeichnis des init-Quellcode-Tar-Archives studieren.

SIGNALE

       Init reagiert auf mehrere Signale:

       SIGHUP
            Hat die gleichen Auswirkungen wie telinit q.

       SIGUSR1
            Beim  Empfang  dieses  Signals  schließt init seinen Steuerungs-Fifo /run/initctl und
            öffnet ihn wieder. Nützlich für Systemstartskripte, wenn /dev neu eingehängt wird.

       SIGUSR2
            Wenn Init SIGUSR2 empfängt, schließt Init sich und läßt das Steuer-FIFO  /run/initctl
            geschlossen. Dies kann dazu verwandt werden, sicherzustellen, dass Init keine Dateien
            offen hält. Allerdings hindert es Init  auch  daran,  die  Runlevel  zu  ändern.  Das
            bedeutet,  dass  Befehle wie »shutdown« nicht mehr funktionieren. Der FIFO kann durch
            Senden des Signals SIGUSR1 an Init wieder geöffnet werden.

       SIGINT
            Normalerweise sendet der Kernel dieses Signal an  init,  wenn  CTRL-ALT-DEL  gedrückt
            wurde. Es aktiviert die Aktion ctrlaltdel.

       SIGWINCH
            Der  Kernel  sendet  dieses Signal, falls die KeyboardSignal-Taste gedrückt wurde. Es
            aktiviert die kbdrequest-Aktion.

KONFORM ZU

       Init  ist  kompatibel  zu  System-V-Init.  Es  arbeitet  eng  mit  den  Skripten  in   den
       Verzeichnissen  /etc/init.d  und  /etc/rc{runlevel}.d  zusammen.Falls  Ihr  System  diesem
       Grundsatz folgt, sollte sich in diesem Verzeichnis eine README-Datei befinden, die erklärt
       wie diese Skripte funktionieren.

DATEIEN

       /etc/inittab
       /etc/initscript
       /dev/console
       /var/run/utmp
       /var/log/wtmp
       /run/initctl

WARNUNGEN

       Init  geht  davon  aus,  dass  alle  Prozesse und Kindprozesse in der selben Prozessgruppe
       verbleiben, die ursprünglich für sie eingerichtet wurde. Falls einer dieser  Prozesse  die
       Gruppe wechselt, kann init ihn nicht mehr beenden und es kann passieren, dass Sie in einem
       Zustand landen, in dem zwei Prozesse von einer Terminalzeile Befehle einlesen wollen.

       Auf einem Debian-System veranlasst das Eintreten in Runlevel 1,  dass  alle  Prozesse  mit
       Ausnahme  von  Kernel-Threads und dem Skript, das das Beenden erledigt und andere Prozesse
       in deren Sitzung, beendet werden. Als Konsequenz  davon  ist  es  nicht  sicher,  von  von
       Runlevel  1  zu  einem  Mehrbenutzer-Runlevel  zurückzukehren:  Daemons, die in Runlevel S
       gestartet wurden und für normale Operationen benötigt werden,  laufen  nicht  länger.  Das
       System sollte neu gestartet werden.

DIAGNOSE

       Wenn  init  herausfindet,  dass es kontinuierlich einen Eintrag öfter als zehn mal in zwei
       Minuten neu erzeugt, wird es annehmen, dass ein Fehler in der Befehlszeile vorliegt,  eine
       Fehlermeldung auf der Befehlszeile erzeugen und sich weigern, den Eintrag auszuführen, bis
       fünf Minuten  vergangen  sind  oder  es  ein  Signal  empfängt.  Dieses  verhindert,  dass
       Systemressourcen  verschwendet  werden,  wenn  jemandem  ein  Tippfehler  in  /etc/inittab
       unterläuft oder das zum Eintrag gehörende Programm gelöscht wird.

AUTOR

       Miquel van  Smoorenburg  (miquels@cistron.nl),  ursprüngliche  Handbuchseite  von  Michael
       Haardt (u31b3hs@pool.informatik.rwth-aachen.de).

SIEHE AUCH

       getty(1),  login(1),  sh(1),  runlevel(8),  shutdown(8),  kill(1), initctl(5), inittab(5),
       initscript(5), utmp(5)

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite    wurde    von    Martin    Okrslar
       <okrslar@informatik.uni-muenchen.de>,  Martin  Schulze  <joey@infodrom.org>,  Chris  Leick
       <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.

                                          29. Juli 2004                                   INIT(8)