You can boot through the GUI. There are multiple states in the runlevel, which are defined according to the current state of the system. Read this guide thoroughly if you also want to know about the runlevel and its states. This guide has all the information you need about the runlevel in Linux.
What is Runlevel in Linux?
Runlevel is a different mode used for the various tasks in Linux. There are seven types of runlevel which are numbered from zero to six. In Linux, runlevels zero, one, and six serve a specific purpose. But in runlevels two, three, and four runlevel, you can do any purpose decided by the distribution provider. The /etc/inittab file determines the system’s runlevel. You can manually switch from one runlevel to another as an admin.
There are some main reasons for defining the runlevel, such as:
- Determining how the system is set up at boot, such as whether a GUI is available.
- Describing the application or program that the system will need to execute upon booting.
Switching Between Runlevels
Before changing the runlevel, you should know your current runlevel state. Run the following command in the terminal:
According to the following output, the first number represents the previous runlevel that ran in your system. The second number represents its current runlevel. Here, “N” means that your system was not previously at a different runlevel. And “5” means that your system’s current runlevel is 5.
With the -r option, you can also find the runlevel with the who command:
We always recommend that you get the information about the parameters before using the runlevel. You can get help at the runlevel by running the following commands:
Or
To go to the man pages of the runlevel execute the following command:
Each runlevel has its distinct function. The runlevels differ according to the operating systems, which range from zero to six. We recommend that you refer to the following table and understand the numbers used to define the runlevel:
Runlevel | Target | Description |
0 | poweroff.target | Nothing runs at this runlevel. It is only used for shutting down the system. |
1 | rescue.target | In the recovery mode, this runlevel is used. It is a single-user mode, so only the root can access it. It simply does not configure the network interface, and users can define it as the non-root users. |
2 | multi-user.target | It runs in the multi-user mode but does not initiate network or daemon interfaces. |
3. | Provides multi-user functionality without GUI. Here, just one CLI is used. | |
4 | Usually, this runlevel is not used, and it is undefined. Users can specify it. | |
5 | graphical.target | In most Linux systems, this runlevel is used. It runs the system in multi-user mode with a graphical user interface. |
6 | reboot.target | As soon as the runlevel command is executed, the system is rebooted. |
Runlevel Files Location
Each runlevel has its directory located inside the /etc directory. Each runlevel has its specific environment executed through one particular set of scripts. Now, we will see where these scripts are stored.
Many configuration files and subdirectories are included in the /etc directory. Runlevel files are organized into these directories in rc0.d to rc6.d formation.
Each subdirectory is designed for a specific runlevel that holds the configuration files. The following command displays the subdirectories:
A list of processes that run at each runlevel is also available. For example, we see that runlevel 4 lists all the running processes. Let’s look at the files in the /etc/rc4.d subdirectory used for runlevel 4:
Changing the Runlevel
You can change the runlevel either from init or telinit command. Here are the following commands:
telinit <runlevel_value>
In the previous commands, change the <runlevel_value> with the runlevel you want to change. Both the init and telinit commands give the same output. Running both the previous commands in the terminal will restart your system quickly.
The systemctl command helps to find and change the current runlevel. First, run the following command to determine your runlevel:
Running the previous command displays the “graphical.target” as an output. Once the present runlevel is detected, we change the runlevel through the following command using the systemctl command:
After typing the command, press the Enter button. You will be redirected to the new window where you have to provide your system credentials. Once successful authentication is done, you are on the command line.
Once again, execute the runlevel command to check the current state of the runlevel.
Two types of runlevels are displayed in the output on getting the command run. There was a runlevel 5 used previously, and there is a runlevel 3 used now.
srudo systemctl isolate graphical.target
After a successful authentication, you return to GUI mode.
Conclusion
We have thoroughly explained the Linux Runlevel in this article. There are different ways to check the runlevel, but we only described one method so you can understand it well. If you want to know more related topics in this article or have questions in your mind, you can share your opinion in the comment box.