Konvenční způsob používaný ke změně úrovně běhu pomocí /etc/inittab
se stal zastaralým s Redhat Enterprise Linux verze 7. Výsledkem je jakýkoli systém Linux používající systemd
démon správy systému nyní spoléhá na systemctl
příkaz ke změně úrovně běhu nebo přesněji ke změně cíle. Výsledkem jsou jakékoli úpravy /etc/inittab
soubor se neprojeví na RHEL 7. Termín runlevel
stále existuje na RHEL 7 a kontrolujeme aktuální úroveň běhu pomocí runlevel
příkaz:
[root@rhel7 ~]# runlevel N 3
Nicméně, pokud jde o RHEL 7, místo runlevelu mluvíme o cílech. Například pro výpis všech aktuálně načtených cílů můžeme použít následující linuxový příkaz:
[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'.
V současné době náš systém běží na úrovni běhu 3, což je multi-user.target
. Dále můžeme vypsat všechny dostupné cíle úrovně běhu pomocí níže uvedeného příkazu:
[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'.
Správce systému může aktivovat kterýkoli z výše uvedených cílů. Například aktivace graphical.target
efektivně změníme úroveň běhu 3 na úroveň běhu GUI 5. K tomu znovu použijeme systemctl
příkaz:
[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'
Jak je ukázáno na výše uvedeném výstupu systemctl
příkaz změnil výchozí cíl vytvořením symbolického odkazu do /etc/systemd/system/default.target
takže je to výchozí cíl spouštění.