linux:runlevel

Runlevels

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:

  • anzeigen:
    systemctl get-default
  • ändern:
    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:

Andere Möglichkeiten sind

  • ksysv (grafisch)
  • rcconf
  • ntsysv (Red Hat).