From 0ad6d9ac23cd35b81bbabc10a5a95d82ebb767d5 Mon Sep 17 00:00:00 2001 From: Gerard Beekmans Date: Fri, 23 Feb 2001 20:23:07 +0000 Subject: [PATCH] Added run level explanation git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@227 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter07/chapter07.xml | 1 + chapter07/usage.xml | 91 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 chapter07/usage.xml diff --git a/chapter07/chapter07.xml b/chapter07/chapter07.xml index ab3625579..28a48f110 100644 --- a/chapter07/chapter07.xml +++ b/chapter07/chapter07.xml @@ -2,6 +2,7 @@ Creating system boot scripts &c7-introduction; +&c7-usage; &c7-createdirs; &c7-rc; &c7-rcS; diff --git a/chapter07/usage.xml b/chapter07/usage.xml new file mode 100644 index 000000000..e4701cf1a --- /dev/null +++ b/chapter07/usage.xml @@ -0,0 +1,91 @@ + +How does the booting process with these scripts work? + + +Linux uses a special booting facility named SysVinit. It's based on a +concept of runlevels. It can be widely different +from one system to another, so don't assume that because things +worked in <insert distro name> they should work like that in LFS +too. LFS has it's own way of doing things, but it respects generally +accepted standards. + + + +SysVinit (which we'll call init from now on) works +using a runlevels scheme. There are 7 (from 0 to 6) runlevels (actually +there are runlevels but they are for special cases and generally not used. +Read the init man page for those details), and each one of those +corresponds to the things you want your computer to do when it starts +up. The default runlevel is 3. Here are the descriptions of the different +runlevels as they are often implemented: + + + +0: halt the computer +1: single-user mode +2: multi-user mode without networking +3: multi-user mode with networking +4: reserved for customization, otherwise does the same as 3 +5: same as 4, it is usually used for GUI login (like X's xdm or KDE's +kdm) +6: reboot the computer + + + +The command used to change runlevels is init +<runlevel> where <runlevel>> is +the target runlevel. For example, to reboot the computer, you'd issue +the init 6 command. The reboot command is just an alias, as is the halt +command an alias to init 0. + + + +The /etc/init.d/rcS script is run at every startup of the computer, +before any runlevel is executed and runs the scripts listed in +/etc/rcS.d + + + +There are a number of directories under /etc that look like like rc?.d +where ? is the number of the runlevel and rcS.d. Take a look at one of +them (after you finish this chapter that is, right now there's nothing +there yet). There are a number of symbolic links. Some begin with an K, +the others begin with an S, and all of them have three numbers following +the initial letter. The K means to stop (kill) a service, and the S means +to start a service. The numbers determine the order in which the scripts +are run, from 000 to 999; the lower the number the sooner it gets +executed. When init switches to another runlevel, the appropriate +services get killed and others get started. + + + +The real scripts are in /etc/init.d. They do all the work, and the +symlinks all point to them. You'll note that killing links and starting +links point to the same script in /etc/init.d. That's because the scripts +can be called with different parameters like start, stop, restart, reload, +status. When a K link is encountered, the appropriate script is run with +the stop argument. When a S link is encountered, the appropriate script +is run with the start argument. + + + +These are descriptions of what the arguments make the scripts do: +start: The service is started. +stop: The service is stopped. +restart: The service is stopped and then started again. +reload: The configuration of the service is updated. +Use this after you have modified the configuration file of a service, when +you don't need/want to restart the service. +status: Tells you if the service is running and with +which PID's + + + +Feel free to modify the way the boot process works (after all it's your +LFS system, not ours). The files here are just an example of how you +can do it in a nice way (well what we consider nice anyway. You may +hate it). + + + +