Changes in chapter09/usage.xml [7bd0378:dfb8516]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter09/usage.xml
r7bd0378 rdfb8516 20 20 <title>How Do the System V Bootscripts Work?</title> 21 21 22 <para>Linux uses a special booting facility named SysVinit that is based on a 23 concept of <emphasis>run-levels</emphasis>. It can be quite different from one 24 system to another, so it cannot be assumed that because things worked in one 25 particular Linux distribution, they should work the same in LFS too. LFS has its 26 own way of doing things, but it respects generally accepted standards.</para> 22 <para>This version of LFS uses a special booting facility named SysVinit, based on a 23 series of <emphasis>run levels</emphasis>. The boot procedure can be quite different from one 24 system to another; the fact that things worked one way in a particular Linux 25 distribution does not guarantee they will work the same way in LFS. LFS has its 26 own way of doing things, but it does respect generally accepted standards.</para> 27 28 <para>There is an alternative boot procedure called <command>systemd</command>. We will 29 not discuss that boot process any further here. For a detailed description visit 30 <ulink url="https://www.linux.com/training-tutorials/understanding-and-using-systemd/"/>.</para> 27 31 28 32 <para>SysVinit (which will be referred to as <quote>init</quote> from now on) 29 works using a run-levels scheme. There are seven (numbered 0 to 6) run-levels30 ( actually, there are more run-levels, but theyare for special cases and are31 generally not used. See <filename>init(8)</filename> for more details ), and32 each one of those corresponds to theactions the computer is supposed to33 perform when it starts up . The default run-level is 3. Here are the34 descriptions of the different run -levels as they are implemented in LFS:</para>33 uses a run levels scheme. There are seven run levels, numbered 0 to 6. 34 (Actually, there are more run levels, but the others are for special cases and are 35 generally not used. See <filename>init(8)</filename> for more details.) 36 Each one of the seven corresponds to actions the computer is supposed to 37 perform when it starts up or shuts down. The default run level is 3. Here are the 38 descriptions of the different run levels as they are implemented in LFS:</para> 35 39 36 40 <literallayout>0: halt the computer 37 41 1: single-user mode 38 2: reserved for customization, otherwise doesthe same as 342 2: reserved for customization, otherwise the same as 3 39 43 3: multi-user mode with networking 40 4: reserved for customization, otherwise doesthe same as 344 4: reserved for customization, otherwise the same as 3 41 45 5: same as 4, it is usually used for GUI login (like GNOME's <command>gdm</command> or LXDE's <command>lxdm</command>) 42 46 6: reboot the computer</literallayout> … … 46 50 Classically, run level 2 above was defined as 47 51 "multi-user mode without networking", but this was only the case 48 many years ago when multiple users could log into a system connectedvia49 serial ports. In today's environment it makes no sense and50 we designate it now as "reserved".52 many years ago when multiple users could connect to a system via 53 serial ports. In today's environment it makes no sense, and 54 we now say it is "reserved". 51 55 </para> 52 56 </note> … … 66 70 </indexterm> 67 71 68 <para>During thekernel initialization, the first program that is run69 is either specified on the command line or, by default72 <para>During kernel initialization, the first program that is run 73 (if not overridden on the command line) is 70 74 <command>init</command>. This program reads the initialization file 71 75 <filename>/etc/inittab</filename>. Create this file with:</para> … … 102 106 103 107 <para>An explanation of this initialization file is in the man page for 104 <emphasis>inittab</emphasis>. For LFS, the key command that is runis105 <command>rc</command>. The initialization file above will instruct108 <emphasis>inittab</emphasis>. In LFS, the key command is 109 <command>rc</command>. The initialization file above instructs 106 110 <command>rc</command> to run all the scripts starting with an S in the 107 111 <filename class="directory">/etc/rc.d/rcS.d</filename> directory … … 114 118 This library also reads an optional configuration file, 115 119 <filename>/etc/sysconfig/rc.site</filename>. Any of the system 116 configuration fileparameters described in subsequent sections can be117 alternatively placed in this fileallowing consolidation of all system120 configuration parameters described in subsequent sections can be 121 placed in this file, allowing consolidation of all system 118 122 parameters in this one file.</para> 119 123 … … 121 125 to <filename>/run/var/bootlog</filename>. Since the <filename 122 126 class="directory">/run</filename> directory is a tmpfs, this file is not 123 persistent across boots , howeverit is appended to the more permanent file127 persistent across boots; however, it is appended to the more permanent file 124 128 <filename>/var/log/boot.log</filename> at the end of the boot process.</para> 125 129 … … 127 131 <title>Changing Run Levels</title> 128 132 129 <para>Changing run -levels is done with <command>init133 <para>Changing run levels is done with <command>init 130 134 <replaceable><runlevel></replaceable></command>, where 131 <replaceable><runlevel></replaceable> is the target run -level. For example, to135 <replaceable><runlevel></replaceable> is the target run level. For example, to 132 136 reboot the computer, a user could issue the <command>init 6</command> command, 133 137 which is an alias for the <command>reboot</command> command. Likewise, … … 137 141 <para>There are a number of directories under <filename 138 142 class="directory">/etc/rc.d</filename> that look like <filename 139 class="directory">rc?.d</filename> (where ? is the number of the run -level) and143 class="directory">rc?.d</filename> (where ? is the number of the run level) and 140 144 <filename class="directory">rcS.d</filename>, all containing a number of 141 symbolic links. Some begin with a <emphasis>K</emphasis>,the others begin with145 symbolic links. Some links begin with a <emphasis>K</emphasis>; the others begin with 142 146 an <emphasis>S</emphasis>, and all of them have two numbers following the 143 147 initial letter. The K means to stop (kill) a service and the S means to start a 144 148 service. The numbers determine the order in which the scripts are run, from 00 145 to 99—the lower the number the earlier it gets executed. When146 <command>init</command> switches to another run -level, the appropriate services147 are either started or stopped, depending on the run level chosen.</para>149 to 99—the smaller the number, the sooner tht script runs. When 150 <command>init</command> switches to another run level, the appropriate services 151 are either started or stopped, depending on the run level chosen.</para> 148 152 149 153 <para>The real scripts are in <filename … … 228 232 <para>The <filename>/etc/rc.d/init.d/udev</filename> initscript starts 229 233 <command>udevd</command>, triggers any "coldplug" devices that have 230 already been created by the kernel and waits for any rules to complete.234 already been created by the kernel, and waits for any rules to complete. 231 235 The script also unsets the uevent handler from the default of 232 236 <filename>/sbin/hotplug </filename>. This is done because the kernel no 233 longer needs to call out to an external binary. Instead237 longer needs to call an external binary. Instead, 234 238 <command>udevd</command> will listen on a netlink socket for uevents that 235 239 the kernel raises.</para> 236 240 237 <para>The <command>/etc/rc.d/init.d/udev_retry</command> initscript takes241 <para>The <command>/etc/rc.d/init.d/udev_retry</command> script takes 238 242 care of re-triggering events for subsystems whose rules may rely on 239 file systems that are not mounted until the <command>mountfs</command>243 file systems that are not mounted until the <command>mountfs</command> 240 244 script is run (in particular, <filename class="directory">/usr</filename> 241 245 and <filename class="directory">/var</filename> may cause this). This 242 246 script runs after the <command>mountfs</command> script, so those rules 243 247 (if re-triggered) should succeed the second time around. It is 244 configured fromthe <filename>/etc/sysconfig/udev_retry</filename> file;248 configured by the <filename>/etc/sysconfig/udev_retry</filename> file; 245 249 any words in this file other than comments are considered subsystem names 246 250 to trigger at retry time. To find the subsystem of a device, use 247 251 <command>udevadm info --attribute-walk <device></command> where 248 <device> is an absolute path in /dev or /sys such as /dev/sr0or252 <device> is an absolute path in /dev or /sys, such as /dev/sr0, or 249 253 /sys/class/rtc.</para> 250 254 … … 261 265 262 266 <para>The <command>setclock</command> script reads the time from the hardware 263 clock, also known as the BIOS or theComplementary Metal Oxide Semiconductor267 clock, also known as the BIOS or Complementary Metal Oxide Semiconductor 264 268 (CMOS) clock. If the hardware clock is set to UTC, this script will convert the 265 269 hardware clock's time to the local time using the 266 270 <filename>/etc/localtime</filename> file (which tells the 267 <command>hwclock</command> program which time zone to use). There is no271 <command>hwclock</command> program which time zone to use). There is no 268 272 way to detect whether or not the hardware clock is set to UTC, so this 269 needs tobe configured manually.</para>273 must be configured manually.</para> 270 274 271 275 <para>The <command>setclock</command> program is run via … … 280 284 set to local time. If the output from <command>hwclock</command> is not local 281 285 time, chances are it is set to UTC time. Verify this by adding or subtracting 282 the proper amount of hours for the timezone to the time shown by286 the proper number of hours for your time zone to the time shown by 283 287 <command>hwclock</command>. For example, if you are currently in the MST 284 time zone, which is also known as GMT -0700, add seven hours to the local288 time zone, which is also known as GMT -0700, add seven hours to the local 285 289 time.</para> 286 290 … … 326 330 bootscript that sets up the keyboard map, console font, and console kernel log 327 331 level. If non-ASCII characters (e.g., the copyright sign, the British pound 328 sign andEuro symbol) will not be used and the keyboard is a U.S. one, much332 sign, and the Euro symbol) will not be used and the keyboard is a U.S. one, much 329 333 of this section can be skipped. Without the configuration file, (or 330 334 equivalent settings in <filename>rc.site</filename>), the … … 334 338 <filename>/etc/sysconfig/console</filename> file for configuration 335 339 information. Decide which keymap and screen font will be used. Various 336 language-specific HOWTOs can also help with this ,see <ulink340 language-specific HOWTOs can also help with this; see <ulink 337 341 url="https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html"/>. If still in 338 342 doubt, look in the <filename class="directory">/usr/share/keymaps</filename> 339 343 and <filename class="directory">/usr/share/consolefonts</filename> directories 340 for valid keymaps and screen fonts. Read <filename>loadkeys(1)</filename> and344 for valid keymaps and screen fonts. Read the <filename>loadkeys(1)</filename> and 341 345 <filename>setfont(8)</filename> manual pages to determine the correct 342 346 arguments for these programs.</para> … … 359 363 <listitem> 360 364 <para>This variable specifies the arguments for the 361 <command>loadkeys</command> program, typically, the name of keymap365 <command>loadkeys</command> program, typically, the name of the keymap 362 366 to load, e.g., <quote>it</quote>. If this variable is not set, the 363 367 bootscript will not run the <command>loadkeys</command> program, … … 391 395 map to load. E.g., in order to load the <quote>lat1-16</quote> font 392 396 together with the <quote>8859-1</quote> application character map 393 (a s it is appropriate in the USA),397 (appropriate in the USA), 394 398 <!-- because of the copyright sign --> 395 399 set this variable to <quote>lat1-16 -m 8859-1</quote>. 396 In UTF-8 mode, the kernel uses the application character map for397 conver sion of composed 8-bit key codes in the keymap to UTF-8, and thus400 In UTF-8 mode, the kernel uses the application character map to 401 convert 8-bit key codes to UTF-8. Therefore 398 402 the argument of the "-m" parameter should be set to the encoding of the 399 403 composed key codes in the keymap.</para> … … 405 409 <term>UNICODE</term> 406 410 <listitem> 407 <para>Set this variable to <quote>1</quote>, <quote>yes</quote> or411 <para>Set this variable to <quote>1</quote>, <quote>yes</quote>, or 408 412 <quote>true</quote> in order to put the 409 413 console into UTF-8 mode. This is useful in UTF-8 based locales and … … 523 527 sometimes needs to put an accent on the letter <quote>alpha</quote>. 524 528 The solution is either to avoid the use of UTF-8, or to install the 525 X window system that doesn't have this limitationin its input529 X window system, which doesn't have this limitation, in its input 526 530 handling.</para> 527 531 </listitem> … … 532 536 who need such languages should install the X Window System, fonts that 533 537 cover the necessary character ranges, and the proper input method (e.g., 534 SCIM ,supports a wide variety of languages).</para>538 SCIM supports a wide variety of languages).</para> 535 539 </listitem> 536 540 … … 566 570 567 571 <sect2 id="ch-config-sysklogd"> 568 <title>Configuring the sysklogd Script</title>572 <title>Configuring the Sysklogd Script</title> 569 573 570 574 <indexterm zone="ch-config-sysklogd"> … … 601 605 <filename class='directory'>/etc/sysconfig/</filename> directory. If the 602 606 associated variables are present in both these separate files and 603 <filename>rc.site</filename>, the values in the script specific files have604 precedence. </para>607 <filename>rc.site</filename>, the values in the script-specific files take 608 effect. </para> 605 609 606 610 <para><filename>rc.site</filename> also contains parameters that can … … 616 620 617 621 <para>The LFS boot scripts boot and shut down a system in a fairly 618 efficient manner, but there are a few tweaks thatyou can make in the619 rc.site file to improve speed even more and to adjust messages according622 efficient manner, but there are a few tweaks you can make in the 623 rc.site file to improve speed even more, and to adjust messages according 620 624 to your preferences. To do this, adjust the settings in 621 625 the <filename>/etc/sysconfig/rc.site</filename> file above.</para> … … 625 629 <listitem><para>During the boot script <filename>udev</filename>, there is 626 630 a call to <command>udev settle</command> that requires some time to 627 complete. This time may or may not be required depending on devices present631 complete. This time may or may not be required depending on the devices 628 632 in the system. If you only have simple partitions and a single ethernet 629 633 card, the boot process will probably not need to wait for this command. To … … 631 635 632 636 <listitem><para>The boot script <filename>udev_retry</filename> also runs 633 <command>udev settle</command> by default. This command is only needed by634 defaultif the <filename class='directory'>/var</filename> directory is635 separately mounted . This is because the clock needs the file636 <filename>/var/lib/hwclock/adjtime</filename> . Other customizations may637 <command>udev settle</command> by default. This command is only needed 638 if the <filename class='directory'>/var</filename> directory is 639 separately mounted, because the clock needs the 640 <filename>/var/lib/hwclock/adjtime</filename> file. Other customizations may 637 641 also need to wait for udev to complete, but in many installations it is not 638 ne eded. Skip the command by setting the variable OMIT_UDEV_RETRY_SETTLE=y.642 necessary. Skip the command by setting the variable OMIT_UDEV_RETRY_SETTLE=y. 639 643 </para></listitem> 640 644 … … 665 669 <listitem><para>During shutdown, the <command>init</command> program sends 666 670 a TERM signal to each program it has started (e.g. agetty), waits for a set 667 time (default 3 seconds), andsends each process a KILL signal and waits671 time (default 3 seconds), then sends each process a KILL signal and waits 668 672 again. This process is repeated in the <command>sendsignals</command> 669 673 script for any processes that are not shut down by their own scripts. The
Note:
See TracChangeset
for help on using the changeset viewer.