Provided by: manpages-de_0.10-1_all bug

BEZEICHNUNG

       init, telinit - Initialisierung der Prozesssteuerung

ÜBERSICHT

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

BESCHREIBUNG

   Init
       Init  ist  der übergeordnete Prozess 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
       Datenflusskontrolle 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.

       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
       /dev/initctl  verwendet  werden  -  lesen  Sie den Quellcode des Pakets
       sysvinit, 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  fünf  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  Direktiven  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
       fünf 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 Prozess-ID, 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:

       PFAD   /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) 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.

SCHNITTSTELLE

       Init  lauscht  auf  einem  fifo in /dev, /dev/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
            /dev/initctl und öffnet ihn  wieder.  Nützlich  für  Startskripte,
            wenn /dev erneut eingehängt wird.

       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
       /dev/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),
       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> und Chris Leick <c.leick@vollbio.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)