Provided by:
manpages-de_0.8-1_all 
BEZEICHNUNG
init, telinit - Initialisierung der Prozesssteuerung
"UBERSICHT
/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx ] [ 0123456Ss ]
/sbin/telinit [ -t SEKUNDEN ] [ 0123456sSQqabcUu ]
/sbin/telinit [ -e VAR[=WERT] ]
BESCHREIBUNG
Init
Init ist der ubergeordnete 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
Eintrage, die init dazu veranlassen auf jeder Leitung gettys zu
erzeugen, auf der sich ein Benutzer einloggen kann. Er steuert auch
alle unabhangigen Prozesse, die von einem bestimmten System benotigt
werden.
RUNLEVEL
Ein Runlevel ist eine Software-Konfiguration des Systems, der es nur
einer ausgewahlten Gruppe von Prozessen erlaubt, ausgefuhrt zu werden.
Die Prozesse, die von init fur 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 fuhrt 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 gultig, 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 fur 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 benotigen 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 vernunftige Werte. Der
>>Clocal<<-Modus wird gesetzt. Hardware-Geschwindigkeit und
Datenflusskontrolle werden nicht geandert.
Beim ersten Eintritt in den Mehrbenutzermodus fuhrt init die boot- und
bootwait-Eintrage aus, um das Einhangen von Dateisystemen zu erlauben,
bevor Anwender sich anmelden konnen. Dann werden alle Eintrage, die zum
Runlevel passen, verarbeitet.
Wenn ein neuer Prozess gestartet wird, pruft 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 "ANDERN
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 erfullt ist, untersucht
init nochmals die /etc/inittab-Datei. Es konnen jederzeit neue Eintrage
zu dieser Datei hinzugefugt werden. Jedoch wartet init immer noch
darauf, dass einer der drei oben genannten Bedingungen eintritt. Um
eine sofortige Antwort bereitzustellen, konnen die Befehle telinit Q
oder q init aufwecken, um die Datei /etc/inittab erneut zu prufen.
Falls init sich nicht im Einzelbenutzermodus befindet, und ein
Stromausfallsignal (SIGPWR) empfangt, liest es die Datei
/etc/powerstatus. AnschlieBend wird ein Befehl anhand des Inhalts der
Datei gestartet:
F(EHLSCHLAG)
Strom fallt aus, die USV versorgt den Rechner mit Strom. Die
powerwait- und powerfail-Eintrage werden ausgefuhrt.
O(K) Stromkreis wurde wieder geschlossen, die powerokwait-Eintrage
werden ausgefuhrt.
L(OW/niedrig)
Strom fallt aus und der Ladestand der USV ist niedrig. Die
powerfailnow-Eintrage werden ausgefuhrt.
Wenn /etc/powerstatus nicht existiert oder etwas anderes enthalt als
die Buchstaben F, O oder L, wird Init sich so verhalten, als hatte es
den Buchstaben F gelesen.
Die Verwendung von SIGPWR und /etc/powerstatus werden nicht empfohlen.
Wenn etwas mit init interagieren mochte, sollte der Steuerkanal
/dev/initctl verwendet werden - lesen Sie den Quellcode des Pakets
sysvinit, um weitere Dokumentation daruber zu erhalten.
Falls init die Aufforderung zum Wechsel des Runlevels erhalt, sendet es
das Warnsignal SIGTERM an alle nicht im neuen Runlevel definierten
Prozesse. Dann wartet es funf 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 ursprunglich fur sie erstellt hatte.
Wenn Prozesse ihre Gruppenzugehorigkeit andern, werden Sie diese
Signale nicht empfangen. Solche Prozesse mussen separat beendet werden.
TELINIT
/sbin/telinit ist mit /sbin/init verknupft. Es empfangt Argumente aus
einem Buchstaben oder init-Signale, um die zugehorige Aktion
durchzufuhren. Die folgenden Argumente dienen als Direktiven fur
telinit:
0,1,2,3,4,5 oder 6
init mitteilen, in den angegebenen Runlevel zu schalten.
a,b,c init mitteilen, nur die Eintrage 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 prufen.
S oder s
init mitteilen, in den Einzelbenutzermodus zu wechseln.
U oder u
init mitteilen, sich selbst erneut (unter Beibehalten des
Status) auszufuhren. Es kommt zu keiner erneuten Ausfuhrung 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
funf Sekunden, dies kann aber durch die Option -t geandert werden.
telinit -e weist init an die Umgebung fur Prozesse zu andern, 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 pruft 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 Abkurzung
benutzen kann.
UMGEBUNGSVARIABLEN
Init setzt folgende Umgebungsvariablen fur alle seine Kindprozesse:
PFAD /bin:/usr/bin:/sbin:/usr/sbin
INIT_VERSION
Wie der Name schon sagt. Nutzlich, um festzulegen, ob ein Skript
direkt von init gestartet werden soll.
RUNLEVEL
Der aktuelle Runlevel des Systems.
PREVLEVEL
Der vorherige Runlevel (nutzlich nach einer Anderung des
Runlevels).
CONSOLE
Die Systemkonsole. Diese wird tatsachlich vom Kernel vererbt;
wenn sie jedoch nicht gesetzt ist, wird init sie als Vorgabe auf
/dev/console setzen.
BOOTSCHALTER
Es ist moglich, init eine Reihe von Bootschaltern vom Bootmonitor aus
(z.B. LILO) zu ubergeben. 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
ausgefuhrt, 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 auszufuhren.
-a, auto
Der LILO-Bootloader fugt 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 fur irgendwelche SicherheitsmaBnahmen verwenden
konnen - selbstverstandlich kann der Anwender >>auto<< oder >>-a<<
manuell auf der Befehlszeile angeben.
-z xxx
Das Argument zu -z wird ignoriert. Sie konnen es benutzen, um die
Befehlszeile etwas zu verlangern, damit sie etwas mehr Platz auf
dem Stack reserviert. Init kann dann die Befehlszeile derart
verandern, 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 ausfuhrlich 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 schlieBt init seinen Steuerungs-Fifo
/dev/initctl und offnet ihn wieder. Nutzlich fur Startskripte,
wenn /dev erneut eingehangt wird.
SIGINT
Normalerweise sendet der Kernel dieses Signal an init, wenn
CTRL-ALT-DEL gedruckt wurde. Es aktiviert die Aktion ctrlaltdel.
SIGWINCH
Der Kernel sendet dieses Signal, falls die KeyboardSignal-Taste
gedruckt 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 erklart 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 ursprunglich fur 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 zuruckzukehren: Daemons, die in Runlevel S
gestartet wurden und fur normale Operationen benotigt werden, laufen
nicht langer. Das System sollte neu gestartet werden.
DIAGNOSE
Wenn init herausfindet, dass es kontinuierlich einen Eintrag ofter 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 auszufuhren, bis funf Minuten
vergangen sind oder es ein Signal empfangt. Dieses verhindert, dass
Systemressourcen verschwendet werden, wenn jemandem ein Tippfehler in
/etc/inittab unterlauft oder das zum Eintrag gehorende Programm
geloscht wird.
AUTOR
Miquel van Smoorenburg (miquels@cistron.nl), ursprungliche
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)
"UBERSETZUNG
Die deutsche Ubersetzung 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 Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General
Public License Version 3 oder neuer bezuglich der Copyright-
Bedingungen. Es wird KEINE HAFTUNG ubernommen.
Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden,
schicken Sie bitte eine E-Mail an <debian-l10n-
german@lists.debian.org>.
29. Juli 2004 INIT(8)