SysV Init
(→Runlevel wechseln: ergänzung telinit) |
Hulk (Diskussion | Beiträge) K (Kategorie) |
||
Zeile 60: | Zeile 60: | ||
bzw. | bzw. | ||
telinit 3 | telinit 3 | ||
+ | |||
+ | |||
+ | [[Kategorie:Software]] |
Version vom 12. Mai 2007, 19:55 Uhr
Inhaltsverzeichnis |
Einleitung
Diese Seite gibt einen groben Überblick über die Startscripte eines linux Systems mit System V Init Scripten.
Achtung: Jedes Linux System hat Besonderheiten bei den Bootvorgängen! Nicht jedes System verwendet SysV Scripte und selbst Systeme damit unterscheiden sich u.U. sehr stark!
Der Bootvorgang
Diese Darstellung ist sehr stark vereinfacht und bezieht auf ein vollständig installiertes System mit allen vorhandenen Dateien. Im Falle des Fehlens einer dieser Dateien sieht die Reihenfolge u.U. völlig anders aus.
- BIOS wird geladen
- BIOS durchsucht Master Boot Record des Boot Devices
- auf der ersten als bootbar gekennzeichneten Partition wird Bootcode ausgeführt
- Bootcode lädt Bootloader (lilo, grub)
- Bootloader verweist auf Kernel und übergibt optional Parameter (/, Kernelparameter)
- Kernel startet init (als fallback Option gäbe es noch /bin/sh, aber das ist hier unwichtig)
- init lädt lädt die Konfigurationsdatei /etc/inttab
- in inittab ist ein Runlevel als initdefault eingtragen, dieser wird gestartet
- init ruft rc auf, welches die script im jeweiligen Runlevel entsprechend der Nummerierung aufruft
- init ruft getty auf, welches den login ermöglicht
Die Verzeichnisstruktur in /etc/rc.d
init.d
Dieses Verzeichnis enthält die scripte, die von SysV ausgeführt werden sollen. Diese scripte sind für nahezu jedes Linux individuell, aber sie haben Gemeinsamkeiten:
- Parameter start (wird beim Entern des jeweiligen Runlevels ausgeführt)
- Parameter stop (wird beim Verlassen des jeweiligen Runlevels ausgeführt)
- meist den Parameter status (optionale Statusabfrage)
rc<RUNLEVEL>.d
Dieses Verzeichnis sollte *nur* Verweise auf die scripte in init.d enthalten. Alle symbolischen Links hier sind nach folgenden Konventionen benannt:
- K<NUMMER><SCRIPTNAME> => ../init.d/<SCRIPTNAME>
Wird beim Verlassen des Levels in der Reihenfolge der Nummern aufgerufen und ruft das script mit 'stop' auf.
- S<NUMMER><SCRIPTNAME> => ../init.d/<SCRIPTNAME>
Wird beim Entern des Levels in der Reihenfolge der Nummern aufgerufen und ruft das script mit 'start' auf.
Die Runlevel haben folgende Bedeutung:
- 0: Stop des Systems
- 1: single user (Administration), Dateisysteme gemountet
- s: wie 1, aber ohne multi-user Dateisysteme
- 2..4: normalerweise identisch, multi user, default meist 2 oder 3
- 5: multi user mit grafischer Oberfläche (X11)
- 6: Reboot
- 7..f: meist unbenutzt/nicht existent
Level 2..5 werden bei einigen Distris anders gehandhabt.
rcsysinit.d
wie vor, wird jedoch vorher aufgerufen.
Aktuelle Runlevel abfragen
Mittel des Befehl runlevel lässt sich ermitteln in welchen SysV Init Level das eigene System läuft.
runlevel
Runlevel wechseln
Ein anderer als aktuelle Runlevel kann mit init <RUNLEVEL> erreicht werden. Um in Runlevel 3 zu wechseln :
init 3
bzw.
telinit 3