Keywords: sag

Next: Special configuration in /etc/inittab Up: init Previous: Configuring init to start

# Run levels

A run level is a state of `init` and the whole system that defines what system services are operating. Run levels are identified by numbers, see table 7.1. There is no consensus of how to use the user defined run levels (2 through 5). Some system administrators use run levels to define which subsystems are working, e.g., whether X is running, whether the network is operational, and so on. Others have all subsystems always running or start and stop them individually, without changing run levels, since run levels are too coarse for controlling their systems. You need to decide for yourself, but it might be easiest to follow the way your Linux distribution does things.

Table 7.1: Run level numbers

Run levels are configured in `/etc/inittab` by lines like the following:

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

The first field is an arbitrary label, the second one means that this applies for run level 2. The third field means that `init` should run the command in the fourth field once, when the run level is entered, and that `init` should wait for it to complete. The `/etc/init.d/rc` command runs whatever commands are necessary to start and stop services to enter run level 2.

The command in the fourth field does all the hard work of setting up a run level. It starts services that aren't already running, and stops services that shouldn't be running in the new run level any more. Exactly what the command is, and how run levels are configured, depends on the Linux distribution.

When `init` starts, it looks for a line in `/etc/inittab` that specifies the default run level:

> `id:2:initdefault:`

You can ask `init` to go to a non-default run level at startup by giving the kernel a command line argument of `single` or `emergency`. This allows you to choose the single user mode (run level 1), which is described in section 7.5.

While the system is running, the `telinit` command can change the run level. When the run level is changed, `init` runs the relevant command from `/etc/inittab` .

Next: Special configuration in /etc/inittab Up: init Previous: Configuring init to start