You are on page 1of 2

How to change a runlevel on RHEL 7 Linux system

The conventional way used to change runlevel using /etc/inittab has become obsol
ete with Redhat Enterprise Linux version 7. As a result any Linux system using s
ystemd system management daemon now relies on systemctl command to change runlev
el or to be more precise to change the target. As a result any edits of /etc/ini
ttab file will not take effect on RHEL 7. The term runlevel still exists on RHEL
7 and we cat check current runlevel using runlevel command:
[root@rhel7 ~]# runlevel
N 3
However, in regards to RHEL 7 we instead of runlevel talk about targets.
For example to list all currently loaded targets we ca use the following command
:
[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'.
Currently, our system is running runlevel 3 which is multi-user.target.
Next, we can list all available runlevel targets using a below command:
[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
sysinit.target
syslog.target
time-sync.target
timers.target
umount.target

loaded active active Swap


loaded active active System Initialization
not-found inactive dead syslog.target
loaded inactive dead System Time Synchronized
loaded active active Timers
loaded inactive dead Unmount All Filesystems

26 loaded units listed.


To show all installed unit files use 'systemctl list-unit-files'.
System administrator can activate any of the above targets. For example activati
ng graphical.target we will effectively change from runlevel 3 to GUI runlevel 5
. To do that we once again use systemctl command:
[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.ta
rget'

You might also like