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)