Boot Linux to Console Mode with systemd
systemd uses targets instead of the old sysvinit runlevels. Runlevel 3 (console mode) maps to multi-user.target. Here’s how to boot directly to console on Fedora, RHEL, Debian, Ubuntu, and other systemd-based distributions.
Switch to Console Mode Immediately
To switch from graphical mode to console without rebooting:
sudo systemctl isolate multi-user.target
This immediately stops the display manager and any graphical services, leaving you with a text console.
Boot to Console Mode by Default
To make console mode the default boot target, set it as the default:
sudo systemctl set-default multi-user.target
Verify the change:
systemctl get-default
This command outputs multi-user.target if configured correctly.
To revert to graphical mode:
sudo systemctl set-default graphical.target
Boot to Console Mode Once (Without Making It Permanent)
If you only want to boot to console this time, add a kernel argument at boot. Interrupt GRUB, press e to edit the boot entry, and add systemd.unit=multi-user.target to the kernel line. Press Ctrl+X to boot.
For a permanent kernel argument, edit /etc/default/grub:
sudo nano /etc/default/grub
Add to the GRUB_CMDLINE_LINUX line:
GRUB_CMDLINE_LINUX="... systemd.unit=multi-user.target"
Then rebuild GRUB:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # RHEL/Fedora/CentOS
# or
sudo update-grub # Debian/Ubuntu
Disable the Display Manager Service
If you’ve set the default to multi-user.target but graphical mode still loads, the display manager service may be enabled independently. Check and disable it:
systemctl list-unit-files | grep -E 'gdm|lightdm|sddm|lxdm'
Common display managers include:
gdm.service(GNOME)lightdm.service(lightweight systems)sddm.service(KDE Plasma)lxdm.service(LXDE)
Disable the active one:
sudo systemctl disable gdm.service
sudo systemctl disable sddm.service
sudo systemctl disable lightdm.service
You only need to disable whichever display manager your distribution actually uses. Running all three is harmless if only one is installed.
Verify Your Configuration
After making changes, check what will load at boot:
systemctl list-dependencies multi-user.target
This shows all units pulled in by the console target. Services like SSH, networking, and system daemons should appear here.
To see what’s currently running:
systemctl list-units --type=service --state=running
Return to Graphical Mode
If you need graphical mode again:
sudo systemctl set-default graphical.target
sudo systemctl enable gdm.service # or sddm, lightdm, etc.
sudo reboot
Console mode is useful for servers, headless systems, or when troubleshooting graphical issues. The multi-user.target boots faster, uses fewer resources, and keeps the system focused on services rather than a desktop environment.
If your system still boots into gui despite the above steps:
On some systems you have to do one more thing: disable the lightdm.service or kde.service whichever might be still active
systemctl disable kde.service
or
systemctl disable lightdm.service
Thanks. gdm.service is another one to be disabled too.