GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

CentOS / RHEL 7 :Leitfaden für Anfänger zu systemd-Zielen (Ersatz von SysV-Init-Runlevels)

Frühere Versionen von CentOS/RHEL Linux verwenden SysV-Init-Ausführungsebenen . Diese Runlevel boten die Möglichkeit, Systeme für unterschiedliche Zwecke zu verwenden und nur die Dienste zu starten, die für einen bestimmten Zweck auf einem bestimmten Runlevel benötigt werden. In RHEL 7 wurden Ausführungsebenen durch systemd-Zieleinheiten ersetzt . Zieleinheiten haben ein .target Erweiterung und ähnlich wie Runlevels ermöglichen Ziel-Units, ein System nur mit den Diensten zu starten, die für einen bestimmten Zweck benötigt werden.

RHEL 7 wird mit einer Reihe vordefinierter Ziele verteilt, die Runlevels in früheren Versionen von RedHat Linux ähneln. Der folgende Befehl gibt den absoluten Pfadnamen dieser vordefinierten Systemd-Runlevel-Zieleinheiten zurück:

# find / -name "runlevel*.target"
/usr/lib/systemd/system/runlevel5.target
/usr/lib/systemd/system/runlevel0.target
/usr/lib/systemd/system/runlevel6.target
/usr/lib/systemd/system/runlevel1.target
/usr/lib/systemd/system/runlevel2.target
/usr/lib/systemd/system/runlevel3.target
/usr/lib/systemd/system/runlevel4.target

Vergleich von SysV-Runlevels und Zieleinheiten

Run-Level Zieleinheiten Beschreibung
0 runlevel0.ziel, poweroff.ziel Herunterfahren und ausschalten
1 runlevel1.ziel, rettung.ziel Richten Sie eine Notfall-Shell ein
2,3,4 runlevel[234].target, multi-user.target Richten Sie eine nicht-grafische Mehrbenutzer-Shell ein
5 runlevel5.target, graphisches.target Eine grafische Mehrbenutzer-Shell einrichten
6 runlevel6.ziel, reboot.ziel System herunterfahren und neu starten

Jede runlevel[0123456].target-Datei ist ein symbolischer Link zu den Systemstart-Target-Äquivalenten. Zum Beispiel:

# cd /usr/lib/systemd/system
# ls -l runlevel*
lrwxrwxrwx. 1 root root 15 Sep 23 19:52 runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Sep 23 19:52 runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel6.target -> reboot.target

1. Standard-/aktuelle Zieleinheit anzeigen

Verwenden Sie den folgenden Befehl, um anzuzeigen, welche Zieleinheit standardmäßig verwendet wird:

# systemctl get-default
graphical.target

Das graphical.target Zieleinheit gibt an, dass das System in einem grafischen Mehrbenutzermodus ausgeführt wird. Dies ähnelt Runlevel 5 in einem SysV-Init-System. Sie können dies mit dem alten Befehl runlevel überprüfen :

# runlevel
N 5

Die standardmäßige Zieleinheit wird durch /etc/systemd/system/default.target dargestellt Datei. Diese Datei ist ein symbolischer Link zur aktuellen Standardzieleinheit. Zum Beispiel:

# ls -lrt /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Sep 23 20:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target

2. Listen Sie die derzeit aktiven Ziele auf

Verwenden Sie den folgenden Befehl, um die derzeit aktiven Zieleinheiten auf Ihrem System anzuzeigen.

# systemctl list-units --type target
UNIT                   LOAD   ACTIVE SUB    DESCRIPTION
basic.target           loaded active active Basic System
cryptsetup.target      loaded active active Encrypted Volumes
getty.target           loaded active active Login Prompts
graphical.target       loaded active active Graphical Interface
local-fs-pre.target    loaded active active Local File Systems (Pre)
local-fs.target        loaded active active Local File Systems
multi-user.target      loaded active active Multi-User System
network-online.target  loaded active active Network is Online
network.target         loaded active active Network
nfs-client.target      loaded active active NFS client services
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target           loaded active active Paths
remote-fs-pre.target   loaded active active Remote File Systems (Pre)
remote-fs.target       loaded active active Remote File Systems
slices.target          loaded active active Slices
sockets.target         loaded active active Sockets
swap.target            loaded active active Swap
sysinit.target         loaded active active System Initialization
timers.target          loaded active active Timers

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

19 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

3. Standard-Zieleinheit ändern

Verwenden Sie den folgenden Befehl, um die standardmäßige Zieleinheit zu ändern (z. B. um die Standardeinheit in die Einheit multi-user.target zu ändern):

# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

Beachten Sie, dass sich der symbolische Link default.target geändert hat und nun auf die Unit multi-user.target zeigt:

# ls -lrt /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 41 Sep 24 11:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target

4. Ändern Sie die derzeit aktive Systemzieleinheit

Der set-default Der Befehl ändert den aktuellen Zustand des Systems nicht. So ändern Sie das derzeit aktive Systemziel (z. B. um das derzeit aktive Systemziel in multi-user.target zu ändern):

# systemctl isolate multi-user.target

Dieser Befehl ähnelt der Verwendung von telinit [Runlevel] um den aktuellen Runlevel zu ändern. Dieser telinit-Befehl existiert noch, ist aber nur aus Kompatibilitätsgründen enthalten.

Sie können auch den folgenden Befehl verwenden, um die Standardzieleinheit einzugeben:

# systemctl default

Dies entspricht dem folgenden Befehl:

# systemctl isolate default.target
CentOS / RHEL 7 :Systemd-Befehlszeilenreferenz (Spickzettel)
CentOS / RHEL 7 :So ändern Sie Runlevels (Ziele) mit Systemd
CentOS / RHEL 7 :Anfängerleitfaden zu Systemd-Serviceeinheiten
CentOS / RHEL 7 :Anfängerleitfaden für systemd


Cent OS
  1. CentOS / RHEL 7:Anfängerleitfaden für systemd

  2. CentOS / RHEL 7:Einsteigerleitfaden für Firewalld

  3. So führen Sie rsyslog als Nicht-Root-Benutzer in CentOS/RHEL 7 aus

  4. Leitfaden für Anfänger zum Optimieren von Profilen in CentOS/RHEL

  5. Leitfaden für Anfänger zum Verwalten von Paketmodul-Streams in CentOS/RHEL 8

So installieren/aktualisieren Sie Systemd unter RHEL/CentOS 7

So führen Sie Google Chrome als Root unter CentOS 7 / RHEL 7 aus

So richten Sie einen Chef 12 unter CentOS 7 / RHEL 7 ein

So ändern Sie den aktuellen/Standard-Runlevel in CentOS 8 / RHEL 8

So ändern Sie den aktuellen Runlevel in RHEL 8 / CentOS 8

CentOS / RHEL 7:Leitfaden für Anfänger zu systemd-Diensteinheiten