3.4 Runlevels

 <  Day Day Up  >  

Init is a process started by the kernel during the boot, and it takes over the control of the start sequence. The main configuration file is /etc/inittab. In this file we can provide the default runlevel. The default runlevel for systems with graphical login is 5 without 3.

The first script started by init is /etc/init.d/boot, after it runs all startscripts in /etc/init.d/rc3.d (or rc5.d, for runlevel 5). If you want to add something to be run before the runlevel scripts, add it to /etc/init.d/boot.local.

If you need to add something in runlevel 3 or runlevel 5, then place your script in /etc/init.d and place a link starting with S+number and K+number in /etc/initrd/rc5.d.


On SuSE SLES8, use /etc/init.d/skeleton as a template if you need to create your own start/stop scripts.

The /etc/init.d directory contains all start and stop scripts for all runlevels. Each runlevel has its own subdirectory containing symbolic links to the scripts in /etc/init.d. These are located under /etc/init.d/rcX.d (X stands for runlevel number 1-6).

These directories contain links beginning with the letter S, to be executed with the start option when the system enters the runlevel. Links to scripts beginning with the letter K are going to be executed when the system is leaving the runlevel, and only if the new runlevel does not contain the same script.

The number determines the execution order. For example, the symbolic link in /etc/init.d/rc3.d named S09sshd will be executed when entering runlevel3 after S05network; in fact, /etc/init.d/ssh will be called with the "start" option.

The runlevel description is given in /etc/inittab and is defined through the Linux Standard base specification: [6]

[6] See http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/runlevels.html

  • runlevel 0 is System halt (Do not use this for initdefault!)

  • runlevel 1 is Single user mode

  • runlevel 2 is Local multiuser without remote network (for example, NFS)

  • runlevel 3 is Full multiuser with network

  • runlevel 4 is Not used, reserved for local use

  • runlevel 5 is Full multiuser with network and xdm

  • runlevel 6 is System reboot (Do not use this for initdefault!)

We wondered why SuSE asked us for the root password even when booting in single user mode (init 1). The answer is contained in the following entry in the /etc/inittab file, asking what to do in single-user mode:

 # what to do in single-user mode ls:S:wait:/etc/init.d/rc S ~~:S:respawn:/sbin/sulogin 

Using chkconfig

Both SuSE and Red Hat distributions provide a chkconfig script that allows us to manipulate and display the runlevel links. The chkconfig script relies on two comment lines in the start/stop scripts; for example, in Red Hat:

 # chkconfig: 2345 20 80 # description: Saves and restores system entropy pool 

SuSE [7] has a different format:

[7] The format used by SuSE is LSB compliant, see http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB.html#INITSCRCOMCONV

 # Default-Start:              3 5 # Default-Stop:               0 1 2 6 # Short-Description:          Apache httpd 

chkconfig --list will display all services and show in which runlevels these will be started.

We can easily change it by issuing following commands:

chkconfig apache on on SuSE, or chkconfig httpd on on Red Hat, will enable us to start Apache in the default runlevels defined in the /etc/init.d/apache script.

chkconfig --list apache will show the changes we have made. Be aware, however, that chkconfig does not start or stop the services; it simply sets them to be started or not started when entering the runlevel. [8]

[8] See man chkconfig for more details

 <  Day Day Up  >  

Quintero - Deploying Linux on IBM E-Server Pseries Clusters
Quintero - Deploying Linux on IBM E-Server Pseries Clusters
Year: 2003
Pages: 108

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net