Runlevel sind definierte Systemzustände, z.B. Einzelbenutzermodus, Mehrbenutzer ohne Netzwerk, Runterfahren, in denen Skripte durchlaufen werden, die Programme starten und stoppen oder andere Aktionen ausführen.
Statt Runlevel wird bei systemd von „targets“ gesprochen.
Standard-target:
systemctl get-default
systemctl set-default multi-user.target
runlevel (sysV) | systemd-target | Bedeutung |
---|---|---|
0 | runlevel0.target, poweroff.target | System anhalten (halt) |
1, s, single | runlevel1.target, rescue.target | Einzelbenutzerbetrieb |
2, 4 | runlevel2.target, runlevel4.target, multi-user.target | User-defined/Site-specific runlevels - identical to 3 |
3 | runlevel3.target, multi-user.target | Mehrbenutzerbetrieb, nicht grafisch. |
5 | runlevel5.target, graphical.target | Mehrbenutzerbetrieb, grafisch |
6 | runlevel6.target, reboot.target | Reboot |
emergency | emergency.target | Notfallkonsole |
In der Datei
/etc/inittab
stehen sowohl die Bedeutung der Runlevel drin (variiert auch bei den Distributionen) als auch der Standardrunlevel und andere Einstellungen (z.B. welcher Befehl beim drücken der strg-alt-entf-Kombination ausgeführt wird).
z.B. bei Debian und Derrivate wie Ubuntu
Runlevel | Zustand |
---|---|
S | Initialisierung des Rechners unmittelbar nach dem Start |
0 | System anhalten (shutdown + halt) |
1 | Einzelbenutzerbetrieb mit Netzwerk (single-user) |
2-5 | Mehrbenutzerbetrieb mit Netzwerk und automatischem X-Start. Standard-runlevel ist 2. |
6 | Systemneustart (shutdown + reboot) |
Making scripts run at boot time with Debian
Bei (Open)Suse, Fedora und Red Hat sind die Runlevel so:
Runlevel | Zustand |
---|---|
0 | System anhalten (halt) |
S | Einzelbenutzerbetrieb mit US-Tastaturbelegung |
1 | Einzelbenutzerbetrieb mit lokaler Tastaturbelegung |
2 | Mehrbenutzerbetrieb ohne Netzwerk bzw. ohne NFS |
3 | Mehrbenutzerbetrieb mit Netzwerk aber ohne X |
4 | üblicherweise keine Verwendung |
5 | Mehrbenutzerbetrieb mit Netzwerk und mit X (grafische Oberfläche). Meist Standard-runlevel |
6 | Systemneustart (shutdown + reboot) |
Um Dienste zu den verschiedenen Runleveln hinzuzufügen genügt es, symbolische Links von /etc/init.d in die entsprechenden Runlevelverzeichnisse anzulegen. Skripte mit beginned mit S sind Startskripte, die mit K sind Killskripte.
Alternativ kann man sich die Arbeit auch abnehmen lassen:
insserv
chkconfig
Andere Möglichkeiten sind