How To Change Default runlevel in Debian 10 / Debian 9
In Debian 10 / Debian 9, systemd uses targets instead of run-levels. The /etc/inittab
file is no longer used by systemd to change run levels.
This post will help you to set up the default runlevel in Debian 10 / Debian 9.
Change Default runlevel
The Default runlevel can be set either by using the systemctl command or making a symbolic link of runlevel targets file to the default target file.
Method 1
Let’s check the current run level by using the following command.
sudo systemctl get-default
Output:
graphical.target
Before changing the default runlevel, check out the available targets.
sudo systemctl list-units --type=target
The output will look like below:
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 graphical.target loaded active active 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 active active Network is Online network.target loaded active active Network nss-user-lookup.target loaded active active User and Group Name Lookups 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 sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization time-sync.target loaded active active System Time Synchronized 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.
Issue the following command to change the default runlevel to runlevel 3 (nothing but a multi-user.target).
sudo systemctl set-default multi-user.target
Confirm the default runlevel.
sudo systemctl get-default
Output:
multi-user.target
Reboot and check it out.
sudo reboot
Method 2
In the previous method, we made the runlevel 3 as the default runlevel. You can also confirm that using the following command.
sudo systemctl get-default
Output:
multi-user.target
For a demo, issue the following command to make runlevel 5 as the default runlevel.
sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
OR
sudo ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
Again check the current level. Now the default runlevel is the graphical mode(runlevel 5).
sudo systemctl get-default
Output:
graphical.target
Reboot the machine and check it out.
sudo reboot
Conclusion
That’s All. I hope this helped you. We welcome your comments.