summaryrefslogtreecommitdiff
path: root/lfs-12.0-sysv/chapter09/usage.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.0-sysv/chapter09/usage.html')
-rw-r--r--lfs-12.0-sysv/chapter09/usage.html999
1 files changed, 0 insertions, 999 deletions
diff --git a/lfs-12.0-sysv/chapter09/usage.html b/lfs-12.0-sysv/chapter09/usage.html
deleted file mode 100644
index ee92c3f..0000000
--- a/lfs-12.0-sysv/chapter09/usage.html
+++ /dev/null
@@ -1,999 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 9.6. Настройка и использование загрузочных скриптов System V
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets V1.79.1" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.0">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.0
- </h4>
- <h3>
- Глава 9. Системные настройки
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="network.html" title=
- "Настройка сети">Пред.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="profile.html" title=
- "Файлы запуска оболочки Bash">След.</a>
- <p>
- Файлы запуска оболочки Bash
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.0">Начало</a>
- </li>
- </ul>
- </div>
- <div class="sect1" lang="en" xml:lang="en">
- <h1 class="sect1">
- <a id="ch-config-usage" name="ch-config-usage"></a>9.6. Настройка и
- использование загрузочных скриптов System V
- </h1>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- 9.6.1. Как работают загрузочные скрипты System V?
- </h2>
- <p>
- В этой версии LFS используется специальное средство загрузки под
- названием SysVinit, основанное на наборе уровней выполнения
- (<span class="emphasis"><em>run-levels</em></span>). Процедура
- загрузки может сильно отличаться от одной системы к другой; и тот
- факт, что в конкретном дистрибутиве Linux все работало должным
- образом, не гарантирует, что оно будут работать так же в LFS. LFS
- работает по-своему, но соблюдает общепринятые стандарты.
- </p>
- <p>
- Существует альтернативная система загрузки, которая называется
- <span class="command"><strong>systemd</strong></span>. Мы не будем
- обсуждать этот вариант загрузки здесь. Для получения подробного
- описания, посетите <a class="ulink" href=
- "https://www.linux.com/training-tutorials/understanding-and-using-systemd/">
- https://www.linux.com/training-tutorials/understanding-and-using-systemd/</a>.
- </p>
- <p>
- SysVinit (в дальнейшем именуемый <span class="quote">«<span class=
- "quote">init</span>»</span>) использует схему уровней выполнения.
- Существует семь уровней выполнения, пронумерованных от 0 до 6. (На
- самом деле уровней больше, но они предназначены для особых случаев
- и обычно не используются. Подробности смотрите в руководстве
- <code class="filename">init(8)</code>). Каждый из них соответствует
- действиям, которые компьютер должен выполнить при запуске и
- выключении. Уровень выполнения по умолчанию — 3. Ниже приведено
- описание различных уровней в том виде, в каком они реализованы в
- LFS:
- </p>
- <div class="literallayout">
- <p>
- 0:&nbsp;выключение&nbsp;компьютера<br />
- 1:&nbsp;однопользовательский&nbsp;режим<br />
- 2:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 3:&nbsp;многопользовательский&nbsp;режим&nbsp;с&nbsp;поддержкой&nbsp;сети<br />
-
- 4:&nbsp;зарезервировано&nbsp;для&nbsp;настройки,&nbsp;в&nbsp;остальном&nbsp;аналогично&nbsp;3<br />
-
- 5:&nbsp;то&nbsp;же,&nbsp;что&nbsp;и&nbsp;4,&nbsp;обычно&nbsp;используется&nbsp;для&nbsp;входа&nbsp;в&nbsp;систему&nbsp;с&nbsp;графическим&nbsp;интерфейсом&nbsp;(например,&nbsp;<br />
-
- <span class=
- "command"><strong>gdm</strong></span>&nbsp;от&nbsp;GNOME&nbsp;или&nbsp;<span class="command"><strong>lxdm</strong></span>&nbsp;от&nbsp;LXDE)<br />
-
- 6:&nbsp;перезагрузка&nbsp;компьютера
- </p>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Раньше, много лет назад, уровень выполнения 2 обозначался как
- "многопользовательский режим без поддержки сети", тогда,
- несколько пользователей могли подключаться к системе через
- последовательные порты. В сегодняшних условиях это не имеет
- смысла, и мы обозначаем этот уровень как "зарезервировано".
- </p>
- </div>
- </div>
- <div class="configuration" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="conf-sysvinit" name="conf-sysvinit"></a>9.6.2. Настройка
- Sysvinit
- </h2>
- <p>
- Во время инициализации ядра первой запускаемой программой (если она
- не переопределена в командной строке) является <span class=
- "command"><strong>init</strong></span>. Эта программа считывает
- файл инициализации <code class="filename">/etc/inittab</code>.
- Создайте этот файл:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/inittab &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/inittab
-
-id:3:initdefault:
-
-si::sysinit:/etc/rc.d/init.d/rc S
-
-l0:0:wait:/etc/rc.d/init.d/rc 0
-l1:S1:wait:/etc/rc.d/init.d/rc 1
-l2:2:wait:/etc/rc.d/init.d/rc 2
-l3:3:wait:/etc/rc.d/init.d/rc 3
-l4:4:wait:/etc/rc.d/init.d/rc 4
-l5:5:wait:/etc/rc.d/init.d/rc 5
-l6:6:wait:/etc/rc.d/init.d/rc 6
-
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-su:S06:once:/sbin/sulogin
-s1:1:respawn:/sbin/sulogin
-
-1:2345:respawn:/sbin/agetty --noclear tty1 9600
-2:2345:respawn:/sbin/agetty tty2 9600
-3:2345:respawn:/sbin/agetty tty3 9600
-4:2345:respawn:/sbin/agetty tty4 9600
-5:2345:respawn:/sbin/agetty tty5 9600
-6:2345:respawn:/sbin/agetty tty6 9600
-
-# End /etc/inittab</code>
-EOF</kbd></pre>
- <p>
- Пояснения по содержимому этого файла инициализации находится на
- справочной странице <span class="emphasis"><em>inittab</em></span>.
- Для LFS основной командой является <span class=
- "command"><strong>rc</strong></span>. В приведенном выше файле
- инициализации, <span class="command"><strong>rc</strong></span>
- будет выполнять все сценарии, начинающиеся с символа S в каталоге
- <code class="filename">/etc/rc.d/rcS.d</code>, за которыми следуют
- все скрипты, начинающиеся с S в каталоге <code class=
- "filename">/etc/rc.d/rc?.d</code>, где знак вопроса задается
- значением initdefault.
- </p>
- <p>
- Для удобства, скрипт <span class=
- "command"><strong>rc</strong></span> считывает библиотеку функций
- из <code class="filename">/lib/lsb/init-functions</code>. Эта
- библиотека также читает необязательный файл конфигурации
- <code class="filename">/etc/sysconfig/rc.site</code>. В этот файл
- можно поместить любой из параметров конфигурации системы, описанных
- в последующих разделах, что позволяет объединить все параметры
- системы в одном файле.
- </p>
- <p>
- Для удобства отладки скрипт functions также записывает весь вывод в
- <code class="filename">/run/var/bootlog</code>. Поскольку каталог
- <code class="filename">/run</code> является tmpfs, этот файл не
- сохраняется при загрузке; однако его содержимое добавляется в файл
- <code class="filename">/var/log/boot.log</code> по окончании
- процесса загрузки.
- </p>
- <div class="sect3">
- <h3 class="sect3">
- <a id="init-levels" name="init-levels"></a>9.6.2.1. Изменение
- уровней выполнения
- </h3>
- <p>
- Изменить уровень выполнения можно с помощью команды <span class=
- "command"><strong>init <em class=
- "replaceable"><code>&lt;runlevel&gt;</code></em></strong></span>,
- где <em class="replaceable"><code>&lt;runlevel&gt;</code></em> -
- это целевой уровнем выполнения. Например, чтобы перезагрузить
- компьютер, пользователь должен выполнить команду <span class=
- "command"><strong>init 6</strong></span>, которая является
- псевдонимом для команды <span class=
- "command"><strong>reboot</strong></span>. Аналогично, init 0
- является псевдонимом для команды <span class=
- "command"><strong>halt</strong></span>.
- </p>
- <p>
- В каталоге <code class="filename">/etc/rc.d</code> есть ещё
- несколько каталогов, которые выглядят как <code class=
- "filename">rc?.d</code> (где ? - номер уровня выполнения), все
- они содержат ряд символических ссылок. Некоторые ссылки
- начинаются с <span class="emphasis"><em>K</em></span>, другие
- начинаются с <span class="emphasis"><em>S</em></span>, и все они
- содержат две цифры после начальной буквы. K означает остановить
- (убить) службу, а S означает запустить службу. Числа определяют
- порядок выполнения сценариев от 00 до 99—чем меньше число, тем
- раньше запускается скрипт. Когда <span class=
- "command"><strong>init</strong></span> переключается на другой
- уровень выполнения, соответствующие службы либо запускаются, либо
- останавливаются, в зависимости от выбранного уровня выполнения.
- </p>
- <p>
- Реальные скрипты находятся в каталоге <code class=
- "filename">/etc/rc.d/init.d</code>. Они выполняют фактическую
- работу, и символические ссылки указывают на них. Ссылки К и S
- указывают на один и тот же скрипт в <code class=
- "filename">/etc/rc.d/init.d</code>. Это связано с тем, что
- скрипты могут вызываться с разными параметрами, такими как
- <em class="parameter"><code>start</code></em>, <em class=
- "parameter"><code>stop</code></em>, <em class=
- "parameter"><code>restart</code></em>, <em class=
- "parameter"><code>reload</code></em>, и <em class=
- "parameter"><code>status</code></em>. Когда встречается ссылка K,
- соответствующий скрипт запускается с аргументом <em class=
- "parameter"><code>stop</code></em>. Когда встречается S-ссылка,
- соответствующий скрипт запускается с аргументом <em class=
- "parameter"><code>start</code></em>.
- </p>
- <p>
- Ниже приведено описание к аргументам скриптов:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>start</code></em></span>
- </dt>
- <dd>
- <p>
- Служба запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>stop</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>restart</code></em></span>
- </dt>
- <dd>
- <p>
- Служба остановлена и снова запущена.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>reload</code></em></span>
- </dt>
- <dd>
- <p>
- Конфигурация сервиса обновлена. Используется после
- изменения файла конфигурации службы, когда перезапуск не
- требуется.
- </p>
- </dd>
- <dt>
- <span class="term"><em class=
- "parameter"><code>status</code></em></span>
- </dt>
- <dd>
- <p>
- Сообщает, запущена ли служба и с какими ИД процессов.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Не стесняйтесь изменять работу процесса загрузки (в конце концов,
- это ваша собственная система LFS). Приведенные здесь файлы
- являются примером того, как это можно сделать.
- </p>
- </div>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- 9.6.3. Загрузочные скрипты Udev
- </h2>
- <p>
- Инит-скрипт <code class="filename">/etc/rc.d/init.d/udev</code>
- запускает <span class="command"><strong>udevd</strong></span>,
- который инициализирует все устройства "холодного подключения",
- которые уже были созданы ядром, и ожидает выполнения всех правил.
- Скрипт также отключает обработчик uevent по умолчанию <code class=
- "filename">/sbin/hotplug</code>. Это сделано потому, что ядру
- больше не нужно обращаться к внешнему бинарному файлу. Вместо этого
- <span class="command"><strong>udevd</strong></span> будет
- прослушивать сокет netlink на предмет событий, которые вызывает
- ядро.
- </p>
- <p>
- Инит-скрипт <span class=
- "command"><strong>/etc/rc.d/init.d/udev_retry</strong></span>
- решает задачу повторного запуска событий для подсистем, правила
- которых могут зависеть от файловых систем, которые не монтируются
- до запуска скрипта <span class=
- "command"><strong>mountfs</strong></span> (в частности, его
- вызывают <code class="filename">/usr</code> и <code class=
- "filename">/var</code>). Этот скрипт запускается после скрипта
- <span class="command"><strong>mountfs</strong></span>, поэтому эти
- правила (при повторном запуске) должны сработать во второй раз. Он
- настраивается в файле <code class=
- "filename">/etc/sysconfig/udev_retry</code>; любые слова в этом
- файле, кроме комментариев, являются именами подсистем, которые
- запускаются при повторной попытке. Чтобы найти подсистему
- устройства, используйте <span class="command"><strong>udevadm info
- --attribute-walk &lt;device&gt;</strong></span>, где &lt;device&gt;
- - это абсолютный путь в /dev или /sys, такой как /dev/sr0 или
- /sys/class/rtc.
- </p>
- <p>
- Для получения информации о загрузке модуля ядра и udev смотрите
- <a class="xref" href="udev.html#module-loading" title=
- "9.3.2.3. Загрузка модуля">Раздел&nbsp;9.3.2.3, «Загрузка
- модуля»</a>.
- </p>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="ch-config-clock" name="ch-config-clock"></a>9.6.4. Настройка
- системного времени
- </h2>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- считывает время с аппаратных часов, также известных как часы BIOS
- или CMOS (Complementary Metal Oxide Semiconductor). Если на
- аппаратных часах установлено время UTC (всемирное скоординированное
- время), этот скрипт преобразует полученное значение в локальное
- время, используя файл <code class="filename">/etc/localtime</code>
- (который сообщает программе <span class=
- "command"><strong>hwclock</strong></span>, в какой временной зоне
- находится пользователь). Невозможно определить, установленное на
- аппаратных часах время UTC или же локальное, поэтому необходимо
- указать его вручную.
- </p>
- <p>
- Скрипт <span class="command"><strong>setclock</strong></span>
- запускается системой <span class="application">udev</span> при
- загрузке, когда ядро определяет возможности аппаратного
- обеспечения. Также его можно запустить вручную с параметром stop,
- чтобы сохранить системное время в аппаратные часы CMOS.
- </p>
- <p>
- Если Вы не можете вспомнить, установлено на аппаратных часах UTC
- или локальное время, запустите команду <strong class=
- "userinput"><code>hwclock --localtime --show</code></strong>. Она
- отобразит текущее время в соответствии с аппаратными часами. Если
- оно совпадает с тем, что показывают ваши настенные/наручные часы,
- значит на часах CMOS установлено локальное время. Если вывод
- <span class="command"><strong>hwclock</strong></span> не совпадает
- с локальным временем, скорее всего, это UTC. Проверьте это, добавив
- или вычитая нужное количество часов для вашего часового пояса ко
- времени, отображаемому <span class=
- "command"><strong>hwclock</strong></span>. Например, если ваш
- часовой пояс это MSK, также известный как GMT +0300, то нужно
- вычесть три часа из локального времени.
- </p>
- <p>
- Измените значение переменной <code class="envar">UTC</code> ниже на
- <em class="parameter"><code>0</code></em> (ноль), если на
- аппаратных часах установлено <span class=
- "emphasis"><em>НЕ</em></span> UTC.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/sysconfig/clock</code> выполнив:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/clock &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/clock
-
-UTC=1
-
-# Set this to any options you might need to give to hwclock,
-# such as machine hardware clock type for Alphas.
-CLOCKPARAMS=
-
-# End /etc/sysconfig/clock</code>
-EOF</kbd></pre>
- <p>
- Хороший совет, объясняющий, как обращаться с временем в LFS,
- доступен по адресу <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/time.txt</a>.
- Там объясняются такие вопросы, как часовые пояса, UTC и переменная
- окружения <code class="envar">TZ</code>.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Параметры CLOCKPARAMS и UTC также могут быть указаны в файле
- <code class="filename">/etc/sysconfig/rc.site</code>.
- </p>
- </div>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="ch-config-console" name="ch-config-console"></a>9.6.5.
- Настройка консоли Linux
- </h2>
- <p>
- Эта секция описывает настройку скрипта <span class=
- "command"><strong>console</strong></span>, который устанавливает
- раскладку клавиатуры, шрифт консоли и уровень подробности
- информации, выводимой ядром на консоль. Если Вы не планируете
- использовать символы, не соответствующие стандарту ASCII (например,
- знак копирайта, символы фунта и евро), и собираетесь печатать
- только в английской раскладке, то можете пропустить большую часть
- секции. Без файла конфигурации (или эквивалентных настроек в
- <code class="filename">rc.site</code>), скрипт <span class=
- "command"><strong>console</strong></span> не будет ничего делать.
- </p>
- <p>
- Скрипт <span class="command"><strong>console</strong></span>
- считывает конфигурацию из файла <code class=
- "filename">/etc/sysconfig/console</code>. Решите для себя, какую
- раскладку клавиатуры и какой шрифт намерены использовать. В этом
- также могут помочь различные HOWTO для конкретных языков; смотрите
- <a class="ulink" href=
- "https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html">https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html</a>.
- Если вы все еще сомневаетесь, посмотрите в каталогах <code class=
- "filename">/usr/share/keymaps</code> и <code class=
- "filename">/usr/share/consolefonts</code> допустимые раскладки и
- экранные шрифты. Прочтите справочные страницы <code class=
- "filename">loadkeys(1)</code> и <code class=
- "filename">setfont(8)</code>, чтобы определить правильные аргументы
- для этих программ.
- </p>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code> должен
- содержать строки вида: ПЕРЕМЕННАЯ="значение". Допустимы следующие
- переменные:
- </p>
- <div class="variablelist">
- <dl class="variablelist">
- <dt>
- <span class="term">LOGLEVEL</span>
- </dt>
- <dd>
- <p>
- Эта переменная задает уровень подробности сообщений,
- посылаемых ядром на системную консоль. Значение этой
- переменной передается в качестве аргумента утилите
- <span class="command"><strong>dmesg -n</strong></span>.
- Допустимы уровни от "1" (нет сообщений) до "8". По умолчанию
- "7".
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP</span>
- </dt>
- <dd>
- <p>
- Эта переменная указывает аргументы для программы <span class=
- "command"><strong>loadkeys</strong></span>, обычно это имя
- загружаемой раскладки, например, <span class=
- "quote">«<span class="quote">it</span>»</span>. Если эта
- переменная не установлена, загрузочный скрипт не будет
- запускать программу loadkeys, и будет использоваться
- раскладка по умолчанию. Обратите внимание, что некоторые
- раскладки имеют несколько версий с одним и тем же именем (cz
- и его варианты в qwerty/ и qwertz/, es в olpc/ и qwerty/ и
- trf в fgGIod/ и qwerty/). В этих случаях также следует
- указать родительский каталог (например, qwerty/es), чтобы
- обеспечить загрузку правильной раскладки.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP_CORRECTIONS</span>
- </dt>
- <dd>
- <p>
- Эта (крайне редко используемая) переменная задает аргументы
- для второго вызова программы <span class=
- "command"><strong>loadkeys</strong></span>. Она полезна, если
- стандартная раскладка вас не совсем устраивает и необходимо
- внести небольшую корректировку. Например, чтобы добавить
- символ евро в раскладку, которая его не содержит, присвойте
- этой переменной значение <span class="quote">«<span class=
- "quote">euro2</span>»</span>.
- </p>
- </dd>
- <dt>
- <span class="term">FONT</span>
- </dt>
- <dd>
- <p>
- Эта переменная определяет аргументы для программы
- <span class="command"><strong>setfont</strong></span>. Обычно
- она включает в себя имя шрифта <span class=
- "quote">«<span class="quote">-m</span>»</span> и имя
- загружаемой таблицы символов. Например, чтобы загрузить шрифт
- <span class="quote">«<span class=
- "quote">lat1-16</span>»</span> вместе с таблицей символов
- <span class="quote">«<span class=
- "quote">8859-1</span>»</span> (подходит для США), установите
- эту переменную в <span class="quote">«<span class=
- "quote">lat1-16 -m 8859-1</span>»</span>. В режиме UTF-8 ядро
- использует таблицу символов для преобразования 8-битных кодов
- клавиш в UTF-8, поэтому аргумент параметра "-m" должен быть
- установлен на кодировку соответствующих кодов клавиш в
- раскладке.
- </p>
- </dd>
- <dt>
- <span class="term">UNICODE</span>
- </dt>
- <dd>
- <p>
- Присвойте этой переменной значение <span class=
- "quote">«<span class="quote">1</span>»</span>, <span class=
- "quote">«<span class="quote">yes</span>»</span> или
- <span class="quote">«<span class="quote">true</span>»</span>,
- чтобы переключить консоль в режим UTF-8. Это полезно при
- использовании локали, основанной на UTF-8, и не рекомендуется
- в иных случаях.
- </p>
- </dd>
- <dt>
- <span class="term">LEGACY_CHARSET</span>
- </dt>
- <dd>
- <p>
- Для многих раскладок клавиатуры в пакете Kbd не существует
- готового Unicode-варианта. Скрипт <span class=
- "command"><strong>console</strong></span> будет на лету
- конвертировать имеющуюся раскладку в UTF-8, если присвоить
- этой переменной имя доступной не-UTF-8 раскладки.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- Несколько примеров:
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Для не-Unicode настройки необходимы только переменные KEYMAP
- и FONT. Например, для польских пользователей может подойти
- такой вариант:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="pl2"
-FONT="lat2a-16 -m 8859-2"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Как упоминалось выше, иногда бывает необходимо
- подкорректировать раскладку. Следующий пример добавляет
- символ евро к немецкой раскладке:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-FONT="lat0-16 -m 8859-15"
-UNICODE="1"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Ниже приведен пример с поддержкой Unicode для болгарского
- языка, где существует стандартная раскладка UTF-8:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="LatArCyrHeb-16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Из-за использования 512-символьного шрифта LatArCyrHeb-16 в
- предыдущем примере, яркие цвета больше не доступны в консоли
- Linux, если используется фреймбуфер. Если Вы хотите
- использовать яркие цвета без фреймбуфера и можете обходиться
- без символов, не относящихся к вашему языку, тогда можно
- использовать специфичный для вашего языка 256-символьный
- шрифт, как показано ниже:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="bg_bds-utf8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Следующий пример демонстрирует автоматическое преобразование
- раскладки из ISO-8859-15 в UTF-8 и включает "мертвые" клавиши
- в режиме Unicode:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-KEYMAP="de-latin1"
-KEYMAP_CORRECTIONS="euro2"
-LEGACY_CHARSET="iso-8859-15"
-FONT="LatArCyrHeb-16 -m 8859-15"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- </li>
- <li class="listitem">
- <p>
- Некоторые раскладки включают в себя "мертвые" клавиши (то
- есть клавиши, нажатие которых само по себе не приводит к
- появлению на экране символа, но которые влияют на символ,
- генерируемый следующей клавишей) или определяют слияние
- символов (например: <span class="quote">«<span class=
- "quote">нажмите Ctrl+. A E чтобы получить Æ</span>»</span> в
- раскладке по умолчанию). Linux-6.4.12 правильно
- интерпретирует "мертвые" клавиши и слияния, только когда
- исходные символы имеют 8-битные коды. Эта особенность не
- влияет на раскладки для европейских языков, поскольку в них
- "сливаются" два ASCII-символа или добавляются подчеркивания к
- неподчеркнутым ASCII-символам. Однако, в режиме UTF-8 могут
- быть проблемы, например, для греческого языка, когда
- необходимо подчеркнуть символ <span class=
- "quote">«<span class="quote">alpha</span>»</span>. Решением в
- этой ситуации будет отказ от использования UTF-8 или
- установка графической системы X Window, не имеющих подобных
- ограничений.
- </p>
- </li>
- <li class="listitem">
- <p>
- Для китайского, японского, корейского и некоторых других
- языков невозможно настроить консоль Linux так, чтобы она
- отображала все необходимые символы. Пользователи, которым
- требуются эти языки, должны установить систему X Window,
- шрифты, покрывающие необходимый диапазон символов, и
- правильный метод ввода (например, SCIM поддерживает большое
- число разнообразных языков).
- </p>
- </li>
- </ul>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code>
- управляет только локализацией текстовой консоли Linux. Он никак
- не влияет на настройки раскладки клавиатуры и шрифтов в системе X
- Window, в сессиях SSH или на последовательном терминале. В этих
- ситуациях ограничения, описанные в двух расположенных выше
- абзацах, не применяются.
- </p>
- </div>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="ch-config-createfiles" name=
- "ch-config-createfiles"></a>9.6.6. Создание файлов при загрузке
- </h2>
- <p>
- Иногда необходимо создавать файлы во время загрузки. Например,
- часто требуется каталог <code class=
- "filename">/tmp/.ICE-unix</code> . Это можно сделать, создав запись
- в скрипте <code class="filename">/etc/sysconfig/createfiles</code>.
- Формат этого файла описан в комментариях файла конфигурации по
- умолчанию.
- </p>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="ch-config-sysklogd" name="ch-config-sysklogd"></a>9.6.7.
- Настройка скрипта Sysklogd
- </h2>
- <p>
- Скрипт <code class="filename">sysklogd</code> вызывает программу
- <span class="command"><strong>syslogd</strong></span> как часть
- инициализации System V. Параметр <em class="parameter"><code>-m
- 0</code></em> отключает периодическую (по умолчанию - каждые 20
- минут) запись временных меток в файлы журналов, производимую
- <span class="command"><strong>syslogd</strong></span>. Если Вам
- необходимо включить периодическую запись временных меток,
- отредактируйте файл <code class=
- "filename">/etc/sysconfig/rc.site</code> и присвойте переменной
- SYSKLOGD_PARMS требуемое значение. Например, чтобы сбросить все
- параметры, присвойте переменной пустое значение:
- </p>
- <pre class="screen">SYSKLOGD_PARMS=</pre>
- <p>
- Дополнительные параметры смотрите в <strong class=
- "userinput"><code>man syslogd</code></strong>.
- </p>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <h2 class="sect2">
- <a id="ch-config-site" name="ch-config-site"></a>9.6.8. Файл
- rc.site
- </h2>
- <p>
- Необязательный файл <code class=
- "filename">/etc/sysconfig/rc.site</code> содержит настройки,
- автоматически применяемые всеми загрузочными скриптами. Этот файл
- может содержать парамеры, обычно указываемые в файлах <code class=
- "filename">hostname</code>, <code class="filename">console</code> и
- <code class="filename">clock</code> из каталога <code class=
- "filename">/etc/sysconfig/</code>. Если значение одной и той же
- переменной присваивается, как в одном из этих файлов, так и в
- <code class="filename">rc.site</code>, приоритет имеет значение из
- специализированного файла.
- </p>
- <p>
- <code class="filename">rc.site</code> также содержит параметры,
- которые могут настраивать другие аспекты процесса загрузки.
- Установка переменной IPROMPT позволит выборочно запускать
- загрузочные скрипты. Другие параметры описаны в комментариях к
- файлу. Версия файла по умолчанию выглядит следующим образом:
- </p>
- <pre class="auto"># rc.site
-# Optional parameters for boot scripts.
-
-# Distro Information
-# These values, if specified here, override the defaults
-#DISTRO="Linux From Scratch" # The distro name
-#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
-#DISTRO_MINI="LFS" # Short name used in filenames for distro config
-
-# Define custom colors used in messages printed to the screen
-
-# Please consult `man console_codes` for more information
-# under the "ECMA-48 Set Graphics Rendition" section
-#
-# Warning: when switching from a 8bit to a 9bit font,
-# the linux console will reinterpret the bold (1;) to
-# the top 256 glyphs of the 9bit font. This does
-# not affect framebuffer consoles
-
-# These values, if specified here, override the defaults
-#BRACKET="\\033[1;34m" # Blue
-#FAILURE="\\033[1;31m" # Red
-#INFO="\\033[1;36m" # Cyan
-#NORMAL="\\033[0;39m" # Grey
-#SUCCESS="\\033[1;32m" # Green
-#WARNING="\\033[1;33m" # Yellow
-
-# Use a colored prefix
-# These values, if specified here, override the defaults
-#BMPREFIX=" "
-#SUCCESS_PREFIX="${SUCCESS} * ${NORMAL} "
-#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
-#WARNING_PREFIX="${WARNING} *** ${NORMAL} "
-
-# Manually set the right edge of message output (characters)
-# Useful when resetting console font during boot to override
-# automatic screen width detection
-#COLUMNS=120
-
-# Interactive startup
-#IPROMPT="yes" # Whether to display the interactive boot prompt
-#itime="3" # The amount of time (in seconds) to display the prompt
-
-# The total length of the distro welcome string, without escape codes
-#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
-#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"
-
-# The total length of the interactive string, without escape codes
-#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
-#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"
-
-# Set scripts to skip the file system check on reboot
-#FASTBOOT=yes
-
-# Skip reading from the console
-#HEADLESS=yes
-
-# Write out fsck progress if yes
-#VERBOSE_FSCK=no
-
-# Speed up boot without waiting for settle in udev
-#OMIT_UDEV_SETTLE=y
-
-# Speed up boot without waiting for settle in udev_retry
-#OMIT_UDEV_RETRY_SETTLE=yes
-
-# Skip cleaning /tmp if yes
-#SKIPTMPCLEAN=no
-
-# For setclock
-#UTC=1
-#CLOCKPARAMS=
-
-# For consolelog (Note that the default, 7=debug, is noisy)
-#LOGLEVEL=7
-
-# For network
-#HOSTNAME=mylfs
-
-# Delay between TERM and KILL signals at shutdown
-#KILLDELAY=3
-
-# Optional sysklogd parameters
-#SYSKLOGD_PARMS="-m 0"
-
-# Console parameters
-#UNICODE=1
-#KEYMAP="de-latin1"
-#KEYMAP_CORRECTIONS="euro2"
-#FONT="lat0-16 -m 8859-15"
-#LEGACY_CHARSET=
-
-</pre>
- <div class="sect3">
- <h3 class="sect3">
- 9.6.8.1. Настройка скриптов загрузки и завершения работы
- </h3>
- <p>
- Загрузочные скрипты LFS загружают и завершают работу системы
- довольно эффективно, но есть несколько настроек, которые вы
- можете внести в файл rc.site, чтобы еще больше повысить скорость
- и настроить сообщения в соответствии с вашими предпочтениями.
- Чтобы сделать это, измените настройки в приведенном выше файле
- <code class="filename">/etc/sysconfig/rc.site</code>.
- </p>
- <div class="itemizedlist">
- <ul>
- <li class="listitem">
- <p>
- Во время работы загрузочного скрипта <code class=
- "filename">udev</code> происходит вызов <span class=
- "command"><strong>udev settle</strong></span>, для
- завершения которого требуется некоторое время. Это время
- может и не потребоваться в зависимости от конфигурации
- устройств в системе. Если у вас имеются только простые
- разделы и одна сетевая карта, процессу загрузки, вероятно,
- не нужно будет ждать завершения работы этой команды. Чтобы
- пропустить её, установите переменную OMIT_UDEV_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Скрипт загрузки <code class="filename">udev_retry</code>
- также по умолчанию запускает <span class=
- "command"><strong>udev settle</strong></span>. Команда
- необходима только тогда, когда каталог <code class=
- "filename">/var</code> смонтирован в отдельный раздел. Это
- связано с тем, что часам нужен доступ к файлу <code class=
- "filename">/var/lib/hwclock/adjtime</code>. Для других
- настроек также может потребоваться дождаться завершения
- udev, но в большинстве случаев в этом нет необходимости.
- Пропустите команду, установив переменную
- OMIT_UDEV_RETRY_SETTLE=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- По умолчанию проверка файловой системы выполняется в
- "тихом" режиме. Это может показаться задержкой во время
- процесса загрузки. Чтобы включить вывод <span class=
- "command"><strong>fsck</strong></span>, установите
- переменную VERBOSE_FSCK=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- При перезагрузке вы, возможно, захотите полностью
- пропустить проверку файловой системы, <span class=
- "command"><strong>fsck</strong></span>. Чтобы сделать это,
- либо создайте файл <code class="filename">/fastboot</code>,
- либо перезагрузите систему командой <span class=
- "command"><strong>/sbin/shutdown -f -r now</strong></span>.
- С другой стороны, вы можете принудительно проверить все
- файловые системы, создав <code class=
- "filename">/forcefsck</code> или запустив <span class=
- "command"><strong>shutdown</strong></span> с параметром
- <em class="parameter"><code>-F</code></em> вместо
- <em class="parameter"><code>-f</code></em>.
- </p>
- <p>
- Установка переменной FASTBOOT=y отключит <span class=
- "command"><strong>fsck</strong></span> во время процесса
- загрузки до тех пор, пока она не будет удалена. Это не
- рекомендуется делать на постоянной основе.
- </p>
- </li>
- <li class="listitem">
- <p>
- Обычно все файлы в каталоге <code class=
- "filename">/tmp</code> удаляются во время загрузки. В
- зависимости от количества имеющихся файлов или каталогов
- это может привести к заметной задержке в процессе загрузки.
- Чтобы пропустить удаление этих файлов, установите
- переменную SKIPTMPCLEAN=y.
- </p>
- </li>
- <li class="listitem">
- <p>
- Во время завершения работы, <span class=
- "command"><strong>init</strong></span> отправляет сигнал
- TERM каждой запущенной программе (например, agetty),
- ожидает установленное время (по умолчанию 3 секунды), затем
- посылает каждому процессу сигнал завершения(KILL) и снова
- ждёт. Этот процесс повторяется в сценарии <span class=
- "command"><strong>sendsignals</strong></span> для любых
- процессов, которые не завершаются их собственными
- скриптами. Задержка для <span class=
- "command"><strong>init</strong></span> может быть
- установлена путем передачи параметра. Например, чтобы
- устранить задержку в <span class=
- "command"><strong>init</strong></span>, передайте параметр
- -t0 при выключении или перезагрузке (например, <span class=
- "command"><strong>/sbin/shutdown -t0 -r
- now</strong></span>). Задержку для скрипта <span class=
- "command"><strong>sendsignals</strong></span> можно
- пропустить, установив параметр KILLDELAY=0.
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="network.html" title=
- "Настройка сети">Пред.</a>
- <p>
- Настройка сети
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="profile.html" title=
- "Файлы запуска оболочки Bash">След.</a>
- <p>
- Файлы запуска оболочки Bash
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter09.html" title=
- "Глава 9. Системные настройки">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.0">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>