Im Katalog suchen

Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage

Online-Version

Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel

Systemstart und -initialisierung

In diesem Abschnitt werden wir besprechen, was genau beim Booten des Systems passiert. Zur Durchführung einiger Systemkonfigurationen ist das Verständnis dieser Vorgänge und der beteiligten Dateien unerläßlich.

Boot-Meldungen des Kernels

Der erste Schritt ist das Booten des Kernels. Wie wir im vorhergehenden Abschnitt gezeigt haben, kann dies von einer Diskette oder von der Festplatte geschehen. Während der Kernel in den Arbeitsspeicher geladen wird, erscheinen auf der Systemkonsole Meldungen, die aber normalerweise auch in den Protokolldateien des Systems gespeichert werden. Als Superuser können Sie immer in der Datei /var/log/messages nachsehen (diese Datei enthält auch Meldungen, die der Kernel während der Laufzeit des Systems ausgibt). Der Befehl dmesg gibt die Meldungen aus dem Ring-Buffer des Kernels aus; direkt nach dem Booten sind das natürlich die Boot-Meldungen, die etwa so aussehen können (auf Ihrem System kann es auch andere Meldungen geben, auch in einer anderen Reihenfolge):

Console: 16 point font, 480 scans Console: colour VGA+ 80x30, 1 virtual console (max 63) pcibios_init : BIOS32 Service Directory structure at 0x000fb1d0 pcibios_init : BIOS32 Service Directory entry at 0xfb5a0 pcibios_init : PCI BIOS revision 2.00 entry at 0xfb5d0 Probing PCI hardware. Calibrating delay loop.. ok - 36.04 BogoMIPS Memory: 14984k/16384k available (552k kernel code, 384k reserved,\ 464k data) Swansea University Computer Society NET3.035 for Linux 2.0 NET3: Unix domain sockets 0.13 for Linux NET3.035. Swansea University Computer Society TCP/IP for NET3.034 IP Protocols: ICMP, UDP, TCP VFS: Diskquotas version dquot_5.6.0 initialized Checking 386/387 coupling... Ok, fpu using exception 16 error\ reporting. Checking 'hlt' instruction... Ok. Intel Pentium with F0 0F bug - workaround enabled. alias mapping IDT readonly ... ... done Linux version 2.0.35 (root@rabbit) (gcc version egcs-2.90.29\ 980515 (egcs-1.0.3 release)) #3 Fri Nov 13 15:07:45 CET 1998 Starting kswapd v 1.4.2.2 Serial driver version 4.13 with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16550A tty01 at 0x02f8 (irq = 3) is a 16550A APM BIOS not found. Real Time Clock Driver v1.09 Configuring Adaptec (SCSI-ID 7) at IO:330, IRQ 11, DMA priority 5 scsi0 : Adaptec 1542 scsi : 1 host. Vendor: IBM Model: DORS-32160 Rev: WA0A Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 Vendor: SANYO Model: CRD-254S Rev: 1.05 Type: CD-ROM ANSI SCSI revision: 02 Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0 scsi : detected 1 SCSI cdrom 1 SCSI disk total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 4226725 [2063 MB]\ [2.1 GB] Partition check: sda: sda1 sda2 sda3 VFS: Mounted root (ext2 filesystem) readonly. Adding Swap: 130748k swap-space (priority -1) lp1 at 0x0378, (polling) 3c59x.c:v0.99E 5/12/98 Donald Becker http://cesdis.gsfc.nasa.gov/\ linux/drivers/vortex.html eth0: 3Com 3c905B Cyclone 100baseTx at 0x6000, 00:10:4b:45:1d:53,\ IRQ 12 8K byte-wide RAM 5:3 Rx:Tx split, 10baseT interface. Enabling bus-master transmits and whole-frame receives. ISDN subsystem Rev: 1.44/1.41/1.47/1.28/none loaded HiSax: Driver for Siemens chip set ISDN cards HiSax: Version 2.1 HiSax: Revisions 1.15/1.10/1.10/1.30/1.8 HiSax: Total 1 card defined HiSax: Card 1 Protocol EDSS1 Id=teles (0) HiSax: Teles IO driver Rev. 1.11 HiSax: Teles 16.3 config irq:5 isac:980 cfg:d80 HiSax: hscx A:180 hscx B:580 Teles3: HSCX version A: V2.1 B: V2.1 Teles3: ISAC 2086/2186 V1.1 HiSax: DSS1 Rev. 1.16 HiSax: 2 channels added HiSax: module installed inserting floppy driver for 2.0.35 Floppy drive(s): fd0 is 1.44M FDC 0 is an 8272A

Es ist der Kernel selbst, der diese Meldungen ausgibt, wenn die Gerätetreiber initialisiert werden. Welche Meldungen ausgegeben werden, hängt davon ab, welche Treiber in Ihren Kernel kompiliert sind und welche Hardware in Ihr System eingebunden ist. Im folgenden beschreiben wir, was die einzelnen Meldungen bedeuten.

Zuerst meldet der Kernel, welchen Konsolenzeichensatz er gewählt und welchen Konsolentyp er erkannt hat. Das betrifft übrigens nur den vom Kernel verwendeten Textmodus und nicht die Fähigkeiten Ihrer Grafikkarte. (Was den Konsolentreiber angeht, wird eine SVGA-Karte als VGA+ gemeldet.)

Als nächstes sammelt der Kernel Informationen über den PCI-Bus und meldet, welche PCI-Karten er im System gefunden hat.

Die nächste Meldung zeigt die Berechnung der »BogoMips« für Ihren Prozessor. Es handelt sich um eine absolut falsche Berechnung (bogus = Schwindel - daher der Name), die zur optimalen Gestaltung der Warteschleifen in einigen Gerätetreibern benutzt wird. Der Kernel gibt außerdem Informationen zum Arbeitsspeicher aus:

Memory: 14984k/16384k available (552k kernel code, 384k reserved, 464k data)

In diesem Beispiel stehen dem System 14 984 Kilobytes an RAM zur Verfügung. Demnach belegt der Kernel selbst 1 500 Kilobytes.

Anschließend wird das Netzwerk-Subsystem im Kernel initialisiert und der Prozessortyp abgefragt. Sie sehen an der Meldung:

Intel Pentium with F0 0F bug - workaround enabled.

daß der Kernel schlau genug ist, den berühmten Pentium-Fehler zu entdecken und zu umgehen. Die Zeile

Linux version 2.0.35 (root@rabbit) (gcc version egcs-2.90.29 980515\ (egcs-1.0.3 release)) #3 Fri Nov 13 15:07:45 CET 1998

teilt Ihnen die Versionsnummer des Kernels mit und wer diesen auf welchem Rechner kompiliert hat. (In diesem Fall war das der Benutzer root auf dem Rechner mit dem Namen rabbit mit dem Compiler egcs 1.0.3.) Daraufhin wird der serielle Treiber initialisiert, was für jede erkannte serielle Schnittstelle eine Meldung ausgibt. Die Zeile

tty00 at 0x3f8 (irq = 4) is a 16550A

besagt, daß die erste serielle Schnittstelle (/dev/tty00 oder COM1) an der Adresse 0x3f8 und dem IRQ 4 entdeckt wurde und dafür die Funktionen für den UART 16550A verwendet werden. Als nächstes kommt die Konfiguration und Überprüfung des SCSI-Controllers. Der Kernel gibt Informationen über alle gefundenen SCSI-Geräte aus. Die Zeile

Adding Swap: 130748k swap space (priority -1)

sagt Ihnen, wieviel Swap-Space der Kernel gefunden hat. Zu den weiteren Aktionen bei einem typischen Boot-Vorgang gehören das Finden und Konfigurieren einer parallelen Schnittstelle (lp1), das Finden und Konfigurieren einer Netzwerkkarte und schließlich das Einrichten des ISDN-Subsystems. Als letztes wird das Auffinden eines Diskettenlaufwerks gemeldet. Je nach Hardware werden noch andere Meldungen ausgegeben.

init, inittab und rc-Dateien

Nach der Initialisierung der Gerätetreiber führt der Kernel das Programm init aus, das in einem der Verzeichnisse /etc, /bin oder /sbin steht (auf den meisten Systemen in /sbin/init). init ist ein Programm mit mehreren Aufgaben, das neue Prozesse erzeugt und bestimmte Programme nach deren Terminierung wieder startet. So läuft zum Beispiel auf jeder virtuellen Konsole ein getty-Prozeß, der von init gestartet wird. Wenn Sie an einer der virtuellen Konsolen eine Login-Sitzung beenden, terminiert der getty-Prozeß, und init startet einen neuen, damit Sie wieder einloggen können.

init ruft außerdem beim Booten des Systems eine Reihe von Programmen und Skripten auf. Die Datei /etc/inittab kontrolliert sämtliche Aktionen von init. Jede Zeile dieser Datei hat das Format:

code:runlevel:aktion:befehl

code ist eine eindeutige Zeichenfolge aus ein oder zwei Zeichen, die jeden Eintrag in dieser Datei ideiziert. Einige dieser Einträge müssen einen bestimmten Code haben, damit sie korrekt funktionieren; mehr dazu erfahren Sie weiter unten.

runlevel ist eine Liste der »Runlevels«, auf denen der betreffende Eintrag ausgeführt werden soll. Ein Runlevel ist eine Ziffer oder ein Buchstabe zur Bezeichnung des aktuellen Systemzustands bei der Ausführung von init. Ein Beispiel: Wenn der Runlevel des Systems auf 3 geändert wird, werden diejenigen Einträge in /etc/inittab ausgeführt, die im Feld Runlevel eine 3 stehen haben. Die Runlevels bieten eine einfache Methode, die Einträge in /etc/inittab gruppenweise zusammenzufassen. Sie könnten zum Beispiel festlegen, daß Runlevel 1 nur das notwendige Minimum an Skripten ausführt, Runlevel 2 alles aus Runlevel 1 und zusätzlich die Netzwerkkonfiguration durchführt, während Runlevel 3 alles aus Runlevel 1 und 2 sowie den Wählzugang zum System konfiguriert usw.

In der Regel brauchen Sie sich mit den Runlevels nicht weiter zu befassen. Das System begibt sich beim Booten auf den (in /etc/inittab, darauf kommen wir noch) voreingestellten Runlevel. Bei den meisten Systemen ist das Runlevel 2 oder 3. Nachdem wir das normale Booten besprochen haben, zeigen wir Ihnen, wie Sie in einen anderen Runlevel kommen, den Sie manchmal benötigen - Runlevel 1 oder den Single-User-Modus.

Lassen Sie uns einen Blick auf die Beispieldatei /etc/inittab werfen:

# Voreinstellung für Runlevel ist 3 id:3:initdefault: # Beim Booten des Systems /etc/rc.d/rc.sysinit aufrufen si:S:sysinit:/etc/rc.d/rc.sysinit # /etc/rc.d/rc mit dem Runlevel als Argument ausführen 10:0:wait:/etc/rc.d/rc 0 11:1:wait:/etc/rc.d/rc 1 12:1:wait:/etc/rc.d/rc 2 13:3:wait:/etc/rc.d/rc 3 14:4:wait:/etc/rc.d/rc 4 15:5:wait:/etc/rc.d/rc 5 16:6:wait:/etc/rc.d/rc 6 # Wird beim 'Affengriff' STRG-ALT-ENTF ausgeführt ca::ctrlaltdel:/sbin/shutdown -t3 -rf now # agetty auf virtuellen Konsolen 1 bis 6 starten c1:12345:respawn:/sbin/agetty 38400 tty1 c2:12345:respawn:/sbin/agetty 38400 tty2 c3:45:respawn:/sbin/agetty 38400 tty3 c4:45:respawn:/sbin/agetty 38400 tty4 c5:45:respawn:/sbin/agetty 38400 tty5 c6:45:respawn:/sbin/agetty 38400 tty6

Die einzelnen Felder sind durch Doppelpunkte voneinander getrennt. Das letzte Feld ist am leichtesten zu erkennen: Es handelt sich um den Befehl, den init beim entsprechenden Runlevel ausführt. Das erste Feld ist ein beliebiger Bezeichner (was Sie hier verwenden, ist egal, solange der Bezeichner eindeutig ist), das zweite gibt an, in welchen Runleveln der Befehl ausgeführt wird. Das dritte Feld teilt init mit, was genau mit diesem Befehl gemacht werden soll; beispielsweise ob dieser einmalig ausgeführt oder immer wieder neu gestartet werden soll, wenn der Befehl beendet wird.

Der tatsächliche Inhalt von /etc/inittab hängt von Ihrem System und der Linux-Distribution ab, die Sie installiert haben.

In unserer Beispieldatei wird als erstes die Voreinstellung für den Runlevel auf 3 gesetzt. Das Feld Aktion für diesen Eintrag enthält initdefault, was zur Folge hat, daß der angegebene Runlevel zur Voreinstellung wird. Dies ist der Runlevel, der üblicherweise beim Booten des Systems benutzt wird. Sie können diese Voreinstellung überschreiben, indem Sie init mit dem gewünschten Runlevel von Hand aufrufen (zum Beispiel, wenn Sie Ihre Konfiguration debuggen). Beispielsweise beendet der folgende Befehl alle laufenden Prozesse und wechselt in den Runlevel 5 - warnen Sie alle Benutzer auf dem System, bevor Sie das tun:

tigger# init 5

LILO kann auch im Single-User-Modus booten (Runlevel 1) - lesen Sie dazu den Abschnitt »Die Boot-Optionen festlegen« weiter vorn in diesem Kapitel.

Icon

Kapitel 6

Der nächste Eintrag weist init an, beim Systemstart das Skript /etc/rc.d/rc.sysinit auszuführen. (Das Feld Aktion enthält sysinit, was besagt, daß dieser Eintrag ausgeführt werden soll, wenn init beim Systemstart aufgerufen wird.) Diese Datei ist einfach ein Shell-Skript, das Befehle zur grundlegenden Systemkonfiguration enthält. Dazu gehören zum Beispiel das Anlegen der Swap-Partition, die Überprüfung und das Aufsetzen der Dateisysteme sowie die Synchronisation der Systemuhr mit der CMOS-Uhr. Sie können sich diese Datei auf Ihrem System ansehen; wir werden später in diesem Kapitel noch auf die darin enthaltenen Befehle eingehen. Lesen Sie auch die Abschnitte »Mit Dateisystemen arbeiten« und »Swap-Space benutzen« in Kapitel 6. In anderen Distributionen kann sich diese Datei auch an einer anderen Stelle befinden, beispielsweise in /sbin/init.d/boot auf SuSE-Systemen.

Wie Sie sehen, wird danach das Skript /etc/rc.d/rc ausgeführt, wenn einer der Runlevel 0 bis 6 erreicht wird, wobei der jeweilige Runlevel als Argument übergeben wird. rc ist ein allgemeines Startup-Skript, das die anderen Skripten, die zum jeweiligen Runlevel gehören, ausführt. Das Feld Aktion enthält bei diesem Eintrag wait, womit erreicht wird, daß init den betreffenden Befehl ausführt und erst nach der Beendigung dieses Befehls irgendeine andere Aktion startet.

rc-Dateien

Icon

Kapitel 4

Linux verwendet eine alte Unix-Konvention und legt Startbefehle in Dateien mit rc im Namen ab. Diese Befehle erledigen alles, was notwendig ist, um ein funktionierendes System zu bekommen. Dazu gehört beispielsweise das Starten der in Kapitel 4 erwähnten Server und Dämonen. Dank dieser Befehle wird das System vollständig mit Protokollfähigkeiten, Mail- und Webserver oder was auch immer Sie gerade installiert haben gestartet. Wie im vorigen Abschnitt erwähnt, werden diese Dateien aus /etc/inittab heraus gestartet. Es handelt sich bei diesen Befehlen um ganz normale Shell-Befehle, und Sie können einfach in einige rc-Dateien hineinschauen, um zu sehen, was diese so tun.

In diesem Abschnitt beschreiben wir die Struktur der rc-Dateien, damit Sie wissen, wo alles anfängt, und in den seltenen Fällen, in denen das System nicht so will wie Sie, Server von Hand starten und anhalten können. Wir verwenden Red Hat als Beispiel, aber wenn Sie einmal das Prinzip verstanden haben, dann sollten Sie sich auf jedem System zurechtfinden können.

Auf Red Hat-Systemen ist die grundlegende rc-Datei /etc/rc.d/rc. Der Pfad ist auf anderen Systemen etwas anders (beispielsweise /etc/init.d/rc auf Debian-Systemen), aber die Inhalte sind sehr ähnlich. Im vorigen Abschnitt konnten Sie sehen, wie /etc/inittab das Skript in verschiedenen Situationen mit einer Zahl zwischen 0 und 6 als Argument aufruft. Diese Zahlen entsprechen den Runleveln, und jede führt dazu, daß die rc-Dateien einen anderen Satz von Skripten aufrufen. Als nächstes müssen wir also die zu einem Runlevel passenden Skripten finden.

Auf Red Hat-Systemen sind die Skripten für die einzelnen Runlevel im Verzeichnis /etc/rc.d/rcN abgelegt, wobei N für den zu startenden Runlevel steht. Für den Runlevel 3 werden also die Skripten in /etc/rc.d/rc3 verwendet. Auch hier kann es bei anderen Distributionen wieder anders aussehen, bei Debian heißt das Verzeichnis beispielsweise /etc/rcN.d.

Wenn Sie in eines dieser Verzeichnisse hineinschauen, werden Sie eine Reihe von Dateinamen der Form Snnxxxx und Knnxxxx sehen, wobei nn eine Zahl zwischen 00 und 99 und xxxx der Name eines Systemdienstes ist. Skripten, deren Namen mit S anfangen, werden beim Starten der Systemdienste und solche, die mit K anfangen, beim Anhalten (kill) verwendet.

Icon

Kapitel 11

Die Nummern nn dienen dazu, eine Ausführungsreihenfolge der Skripten festzulegen - Skripten mit niedrigeren Nummern werden vor solchen mit höheren Nummern ausgeführt. Der Name xxx dient lediglich dazu, zu ideizieren, zu welchem Systemdienst das Skript gehört. Diese Benennungskonvention sieht vielleicht etwas merkwürdig aus, aber sie erleichtert das Hinzufügen oder Entfernen von Skripten zu/aus diesen Dateien, wobei die korrekte Ausführungsreihenfolge erhalten bleibt. Zum Anpassen von Startskripten können Sie der Einfachheit halber auch einen graphischen Runlevel-Editor, wie etwa ksysv aus dem KDE-Projekt (siehe Kapitel 11, Die X Arbeitsoberfläche anpassen), verwenden.

Beispielsweise könnte das Skript zur Initialisierung des Netzwerks S10network heißen, während das Skript zum Anhalten des Logging-Dämons vielleicht K70syslog heißt. Wenn diese Dateien in den richtigen /etc/rc.d/rcN.d-Verzeichnissen abgelegt werden, führt /etc/rc.d/rc sie in numerischer Reihenfolge beim Starten oder Herunterfahren des Systems aus. Wenn der Default-Runlevel Ihres Systems 3 ist, können Sie in /etc/rc.d/rc3.d nachsehen, welche Skripten beim Hochfahren des Systems normalerweise ausgeführt werden.

Weil die gleichen Services in verschiedenen Runleveln gestartet oder angehalten werden, verwenden viele Distributionen symbolische Links, anstatt das gleiche Skript an mehreren Stellen zu wiederholen. Jede S- oder K-Datei ist damit ein symbolischer Link, der in ein zentrales Verzeichnis verweist, das Start- und Stop-Skripten enthält. Unter Red Hat ist das das Verzeichnis /etc/rc.d/init.d, unter SuSE /bin/init.d und unter Debian /etc/init.d. Auf Debian-Distributionen enthält dieses Verzeichnis ein Skript namens skeleton, das Sie anpassen können, um zusätzliche Dämonen, die Sie vielleicht selbst geschrieben haben, zu starten oder anzuhalten.

Es ist nützlich zu wissen, wo sich ein Start- oder Stop-Skript befindet, wenn Sie nicht gleich das ganze System neu starten und in einen anderen Runlevel versetzen wollen, aber einen bestimmten Dienst starten oder anhalten müssen. Suchen Sie im init.d-Verzeichnis nach einem Skript mit dem passenden Namen, und führen Sie es aus, wobei Sie als Parameter entweder start oder stop übergeben. Wenn Sie auf einem SuSE-System beispielsweise den Webserver Apache starten wollen, Ihr System sich aber in einem Runlevel befindet, in dem Apache normalerweise nicht läuft, dann geben Sie folgendes ein:

tigger# /sbin/init.d/apache start

Ein weiteres interessantes Systemkonfigurationsskript ist /etc/rc.d/rc.local, das ausgeführt wird, nachdem die anderen Systeminitialisierungsskripten gelaufen sind. (Wie kann das erreicht werden? Normalerweise wird ein symbolischer Link auf rc.local in jedem der /etc/rc.d/rcN.d-Verzeichnisse mit dem Namen S99local angelegt. Da 99 der höchstmögliche numerische Wert ist, den ein S-Skript haben kann, wird es als letztes ausgeführt. Voilà!) Sie können rc.local editieren, um jeden merkwürdigen oder ungewöhnlichen Systembefehl zur Startzeit ausführen zu lassen. Auch wenn Sie sich nicht sicher sind, wann ein solcher Befehl ausgeführt werden sollte, ist rc.local die richtige Stelle. Auf Debian-Systemen gibt es diese Datei nicht, aber niemand kann Sie daran hindern, selbst eine solche anzulegen und sie von rc aus aufzurufen, wenn Sie das so gewohnt sind.

Der nächste Eintrag mit dem Code ca wird ausgeführt, wenn an der Konsole die Tastenkombination STRG-ALT-ENTF (auch bekannt als »Affengriff«) gedrückt wird. Diese Tastenkombination erzeugt einen Interrupt, der normalerweise das System neu starten würde. Unter Linux wird dieser Interrupt abgefangen und an init weitergeleitet, das dann den Eintrag mit dem Aktionsfeld ctrlaltdel ausführt. Der Befehl, der hier ausgeführt wird - nämlich /sbin/shutdown -t3 -rf now -, wird das System »sicher« herunterfahren und neu starten. (Lesen Sie auch »Das System herunterfahren« weiter hinten in diesem Kapitel.) Auf diese Weise bewahren wir das System vor einem unerwarteten Neustart infolge der Tastenkombination STRG-ALT-ENTF.

Am Ende enthält die Datei inittab eine Reihe von Einträgen, die /sbin/agetty für die ersten sechs virtuellen Konsolen ausführen. agetty ist eine von mehreren getty-Versionen, die es für Linux gibt. Diese Programme ermöglichen das Anmelden an einem Terminal, ohne sie wäre das Terminal quasi tot und würde nicht auf Tastatur- oder Mauseingaben des Benutzers reagieren. Die verschiedenen getty-Befehle öffnen ein Terminal-Gerät (wie eine virtuelle Konsole oder eine serielle Leitung), legen verschiedene Parameter für den Terminal-Treiber fest und rufen dann /bin/login auf, um auf dem Terminal eine Login-Sitzung zu starten. Deshalb muß auf einer virtuellen Konsole, auf der Sie Logins zulassen wollen, getty oder agetty laufen. agetty ist die Version, die auf einer ganzen Reihe von Linux-Systemen benutzt wird, während andere mit getty arbeiten, das eine etwas andere Syntax hat. In den Manpages finden Sie Details zu getty und agetty auf Ihrem System.

agetty akzeptiert zwei Parameter: eine Baud-Rate und einen Gerätenamen. Die Schnittstellen für die virtuellen Konsolen unter Linux heißen /dev/tty1, /dev/tty2 usw. agetty sucht die Gerätenamen unterhalb von /dev. Die Baud-Rate sollte für virtuelle Konsolen immer auf 38 400 gesetzt werden.

Beachten Sie, daß im Feld Aktion der agetty-Einträge ein respawn (etwa: Neustart) steht. Dies veranlaßt init, den Befehl in diesem Eintrag immer wieder neu aufzurufen, wenn der agetty-Prozeß terminiert - was bei jedem Ausloggen eines Benutzers der Fall ist.

Inzwischen sollte init eine bekannte Größe darstellen, aber die diversen Dateien und Befehle in /etc/rc.d, die die eigentliche Arbeit erledigen, bleiben rätselhaft. Wir können auf diese Dateien nicht näher eingehen, ohne mehr Hintergrundwissen zu anderen Aufgaben der Systemverwaltung zu liefern, zum Beispiel zur Handhabung von Dateisystemen. Wir führen Sie in den nächsten Kapiteln durch diese Aufgaben, so daß am Ende alles klar sein sollte.



vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns
International | Über O'Reilly | Tochterfirmen

© 2000, O'Reilly Verlag