Go to TogaWare.com Home Page. GNU/Linux Desktop Survival Guide
by Graham Williams
Duck Duck Go

Run Levels

The runlevel is an identifier for each of the different states in which the GNU/Linux operating system can be running, such as in single user mode, multi-user mode, and halt and reboot modes. Generally a GNU/Linux system is running in multi-user mode.

The first script run by init, after booting into GNU/Linux, is /etc/init.d/rcS. The initialisation files for the default run level (usually 2) are then run. This is specified in /etc/inittab with the line:

  l2:2:wait:/etc/init.d/rc 2

This runs /etc/init.d/rc with the parameter 2. The /etc/init.d/rc script in turn runs the scripts in /etc/rc2.d/ (since the parameter 2 indicates rc2 as opposed to rc3, etc).

The default runlevel is runlevel 2, unless you change it in /etc/inittab:

  # The default runlevel. 
  id:2:initdefault:

In general the runlevels 2, 3, 4, and 5 are all multi-user run levels and Debian sets them up to be the same.

  # Runlevel 0 is halt. 
  # Runlevel 1 is single-user. 
  # Runlevels 2-5 are multi-user. 
  # Runlevel 6 is reboot. 

  l0:0:wait:/etc/init.d/rc 0
  l1:1:wait:/etc/init.d/rc 1
  l2:2:wait:/etc/init.d/rc 2
  l3:3:wait:/etc/init.d/rc 3
  l4:4:wait:/etc/init.d/rc 4
  l5:5:wait:/etc/init.d/rc 5
  l6:6:wait:/etc/init.d/rc 6

Thus, when the system enters a runlevel it executes the scripts in /etc/rc.n where n is the runlevel in question. These scripts are in fact symbolic links (symlinks) to scripts in /etc/init.d/. A script starting with S starts a service. One starting with K stops a service. The number after the `S' or `K' specifies the order in which the scripts are run. For example, S25xdm will start before S35xdm.

To stop xdm, for example, from starting up by default on boot, simply remove the symbolic link of the corresponding `S' script from /etc/rc?.d/S*xdm.

See the man page for init for an extensive discussion.

The init script is run with "start" on changing runlevel (S) and runlevels 0 (the halt runlevel) and 6 (the reboot runlevel).

To remove something (e.g., gdm) from the init scripts:

  # update-rc.d -f gdm remove


Support further development by purchasing the PDF version of the book.
Other online resources include the Data Science Desktop Survival Guide.
Books available on Amazon include Data Mining with Rattle and Essentials of Data Science.
Popular open source software includes rattle and wajig.
Hosted by Togaware, a pioneer of free and open source software since 1984.
Copyright © 1995-2020 Togaware Pty Ltd. . Creative Commons ShareAlike V4.