Der herkömmliche Weg zum Ändern des Runlevels mit /etc/inittab
ist mit Redhat Enterprise Linux Version 7 obsolet geworden. Infolgedessen verwendet jedes Linux-System systemd
Der Systemverwaltungs-Daemon stützt sich jetzt auf systemctl
Befehl zum Ändern des Runlevels oder genauer gesagt zum Ändern des Ziels. Als Ergebnis werden alle Bearbeitungen von /etc/inittab
Datei wird auf RHEL 7 nicht wirksam. Der Begriff runlevel
existiert immer noch auf RHEL 7 und wir überprüfen den aktuellen Runlevel mit runlevel
Befehl:
[root@rhel7 ~]# runlevel N 3
In Bezug auf RHEL 7 sprechen wir jedoch anstelle von Runlevel von Zielen. Um beispielsweise alle derzeit geladenen Ziele aufzulisten, können wir den folgenden Linux-Befehl verwenden:
[root@rhel7 ~]# systemctl list-units -t 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 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.target loaded active active Network paths.target loaded active active Paths 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. 14 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
Derzeit läuft auf unserem System Runlevel 3, also multi-user.target
. Als nächstes können wir alle verfügbaren Runlevel-Ziele mit dem folgenden Befehl auflisten:
[root@rhel7 ~]# systemctl list-units -t target -a UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes emergency.target loaded inactive dead Emergency Mode final.target loaded inactive dead Final Step getty.target loaded active active Login Prompts graphical.target loaded inactive dead 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 inactive dead Network is Online network.target loaded active active Network nss-lookup.target loaded inactive dead Host and Network Name Lookups nss-user-lookup.target loaded inactive dead User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded inactive dead Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems rescue.target loaded inactive dead Rescue Mode shutdown.target loaded inactive dead Shutdown 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 syslog.target not-found inactive dead syslog.target time-sync.target loaded inactive dead System Time Synchronized timers.target loaded active active Timers umount.target loaded inactive dead Unmount All Filesystems 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. 26 loaded units listed. To show all installed unit files use 'systemctl list-unit-files'.
Der Systemadministrator kann jedes der oben genannten Ziele aktivieren. Zum Beispiel das Aktivieren von graphical.target
Wir werden effektiv von Runlevel 3 auf GUI Runlevel 5 wechseln. Dazu verwenden wir wieder systemctl
Befehl:
[root@rhel7 ~]# systemctl enable graphical.target --force rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
Wie in der obigen Ausgabe gezeigt, wird systemctl
Der Befehl hat das Standardziel geändert, indem er einen symbolischen Link in /etc/systemd/system/default.target
erstellt hat wodurch es zu einem standardmäßigen Startziel wird.