How to change runlevel in Linux with systemctl

Conventional method to change runlevel with /etc/inittab has changed. System and service manager command systemd is used. Runlevel have been replaced with targets. Although runlevel command, can still be used.

Below is comparison  of different runlevels and related targets

RunlevelExplanationCorresponding target
1Single user
3full multiuser with networking in text
5full multiuser with networking in graphical

View current runlevel

This command will show current runlevel


change runlevel

List available targets

This command will show list of all loaded target

systemctl list-units --type target

change runlevelChange runlevel

Runlevel can be changed for current session or permanently default runlevel can also be changed.

Change current runlevel

To change current level to any other runlevel

systemctl isolate

Change default run level

To change default runlevel

systemctl set-default <name of target>.target

Above commands replaces the /etc/systemd/system/ file with a symbolic link to /usr/lib/systemd/system/

These commands have been tested on fedora 25 and Redhat 7