source: chapter07/usage.xml@ 6d37614

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 6d37614 was b06ca36, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Updated book sources to use DocBook-XML DTD 4.5

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7970 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 5.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-scripts-usage">
9 <?dbhtml filename="usage.html"?>
10
11 <title>How Do These Bootscripts Work?</title>
12
13 <indexterm zone="ch-scripts-usage">
14 <primary sortas="a-Bootscripts">Bootscripts</primary>
15 <secondary>usage</secondary>
16 </indexterm>
17
18 <para>Linux uses a special booting facility named SysVinit that is based on a
19 concept of <emphasis>run-levels</emphasis>. It can be quite different from one
20 system to another, so it cannot be assumed that because things worked in one
21 particular Linux distribution, they should work the same in LFS too. LFS has its
22 own way of doing things, but it respects generally accepted standards.</para>
23
24 <para>SysVinit (which will be referred to as <quote>init</quote> from now on)
25 works using a run-levels scheme. There are seven (numbered 0 to 6) run-levels
26 (actually, there are more run-levels, but they are for special cases and are
27 generally not used. See <filename>init(8)</filename> for more details), and
28 each one of those corresponds to the actions the computer is supposed to
29 perform when it starts up. The default run-level is 3. Here are the
30 descriptions of the different run-levels as they are implemented:</para>
31
32<literallayout>0: halt the computer
331: single-user mode
342: multi-user mode without networking
353: multi-user mode with networking
364: reserved for customization, otherwise does the same as 3
375: same as 4, it is usually used for GUI login (like X's <command>xdm</command> or KDE's <command>kdm</command>)
386: reboot the computer</literallayout>
39
40 <para>The command used to change run-levels is <command>init
41 <replaceable>&lt;runlevel&gt;</replaceable></command>, where
42 <replaceable>&lt;runlevel&gt;</replaceable> is the target run-level. For example, to
43 reboot the computer, a user could issue the <command>init 6</command> command,
44 which is an alias for the <command>reboot</command> command. Likewise,
45 <command>init 0</command> is an alias for the <command>halt</command>
46 command.</para>
47
48 <para>There are a number of directories under <filename
49 class="directory">/etc/rc.d</filename> that look like <filename
50 class="directory">rc?.d</filename> (where ? is the number of the run-level) and
51 <filename class="directory">rcsysinit.d</filename>, all containing a number of
52 symbolic links. Some begin with a <emphasis>K</emphasis>, the others begin with
53 an <emphasis>S</emphasis>, and all of them have two numbers following the
54 initial letter. The K means to stop (kill) a service and the S means to start a
55 service. The numbers determine the order in which the scripts are run, from 00
56 to 99&mdash;the lower the number the earlier it gets executed. When
57 <command>init</command> switches to another run-level, the appropriate services
58 are either started or stopped, depending on the runlevel chosen.</para>
59
60 <para>The real scripts are in <filename
61 class="directory">/etc/rc.d/init.d</filename>. They do the actual work, and
62 the symlinks all point to them. Killing links and starting links point to
63 the same script in <filename class="directory">/etc/rc.d/init.d</filename>.
64 This is because the scripts can be called with different parameters like
65 <parameter>start</parameter>, <parameter>stop</parameter>,
66 <parameter>restart</parameter>, <parameter>reload</parameter>, and
67 <parameter>status</parameter>. When a K link is encountered, the appropriate
68 script is run with the <parameter>stop</parameter> argument. When an S link
69 is encountered, the appropriate script is run with the
70 <parameter>start</parameter> argument.</para>
71
72 <para>There is one exception to this explanation. Links that start
73 with an <emphasis>S</emphasis> in the <filename
74 class="directory">rc0.d</filename> and <filename
75 class="directory">rc6.d</filename> directories will not cause anything
76 to be started. They will be called with the parameter
77 <parameter>stop</parameter> to stop something. The logic behind this
78 is that when a user is going to reboot or halt the system, nothing
79 needs to be started. The system only needs to be stopped.</para>
80
81 <para>These are descriptions of what the arguments make the scripts
82 do:</para>
83
84 <variablelist>
85
86 <varlistentry>
87 <term><parameter>start</parameter></term>
88 <listitem>
89 <para>The service is started.</para>
90 </listitem>
91 </varlistentry>
92
93 <varlistentry>
94 <term><parameter>stop</parameter></term>
95 <listitem>
96 <para>The service is stopped.</para>
97 </listitem>
98 </varlistentry>
99
100 <varlistentry>
101 <term><parameter>restart</parameter></term>
102 <listitem>
103 <para>The service is stopped and then started again.</para>
104 </listitem>
105 </varlistentry>
106
107 <varlistentry>
108 <term><parameter>reload</parameter></term>
109 <listitem>
110 <para>The configuration of the service is updated.
111 This is used after the configuration file of a service was modified, when
112 the service does not need to be restarted.</para>
113 </listitem>
114 </varlistentry>
115
116 <varlistentry>
117 <term><parameter>status</parameter></term>
118 <listitem>
119 <para>Tells if the service is running and with which PIDs.</para>
120 </listitem>
121 </varlistentry>
122
123 </variablelist>
124
125 <para>Feel free to modify the way the boot process works (after all,
126 it is your own LFS system). The files given here are an example of how
127 it can be done.</para>
128
129</sect1>
Note: See TracBrowser for help on using the repository browser.