diff options
author | Gerard Beekmans <gerard@linuxfromscratch.org> | 2001-02-23 20:23:07 +0000 |
---|---|---|
committer | Gerard Beekmans <gerard@linuxfromscratch.org> | 2001-02-23 20:23:07 +0000 |
commit | 0ad6d9ac23cd35b81bbabc10a5a95d82ebb767d5 (patch) | |
tree | deaa2afc2d06c03b6a0e173a264f9a72301773ab /chapter07/usage.xml | |
parent | 4b538138ab2d6054cc973dde23eb40e9fc5b4aac (diff) |
Added run level explanation
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@227 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter07/usage.xml')
-rw-r--r-- | chapter07/usage.xml | 91 |
1 files changed, 91 insertions, 0 deletions
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 @@ +<sect1 id="ch07-usage"> +<title>How does the booting process with these scripts work?</title> + +<para> +Linux uses a special booting facility named SysVinit. It's based on a +concept of <emphasis>runlevels</emphasis>. 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. +</para> + +<para> +SysVinit (which we'll call <emphasis>init</emphasis> 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: +</para> + +<literallayout> +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 +</literallayout> + +<para> +The command used to change runlevels is <userinput>init +<runlevel></userinput> 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. +</para> + +<para> +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 +</para> + +<para> +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. +</para> + +<para> +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. +</para> + +<literallayout> +These are descriptions of what the arguments make the scripts do: +<emphasis>start</emphasis>: The service is started. +<emphasis>stop</emphasis>: The service is stopped. +<emphasis>restart</emphasis>: The service is stopped and then started again. +<emphasis>reload</emphasis>: 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. +<emphasis>status</emphasis>: Tells you if the service is running and with +which PID's +</literallayout> + +<para> +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). +</para> + +</sect1> + |