focal (8) telinit.8.gz

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)