summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter09/usage.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter09/usage.html')
-rw-r--r--lfs-12.1-sysv/chapter09/usage.html1081
1 files changed, 0 insertions, 1081 deletions
diff --git a/lfs-12.1-sysv/chapter09/usage.html b/lfs-12.1-sysv/chapter09/usage.html
deleted file mode 100644
index 43c41a4..0000000
--- a/lfs-12.1-sysv/chapter09/usage.html
+++ /dev/null
@@ -1,1081 +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 Vsnapshot" />
- <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.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </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="locale.html" title=
- "Настройка системной локали">След.</a>
- <p>
- Настройка системной локали
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-config-usage" name="ch-config-usage"></a>9.6. Настройка и
- использование загрузочных скриптов System V
- </h1>
- <div class="sect1" lang="ru" xml:lang="ru">
- <div class="sect2" lang="ru" xml:lang="ru">
- <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. (На
- самом деле уровней больше, но они предназначены для особых случаев
- и обычно не используются. Подробности смотрите в руководстве
- <a class="ulink" href=
- "https://man.archlinux.org/man/init.8">init(8)</a>). Каждый из них
- соответствует действиям, которые компьютер должен выполнить при
- запуске и выключении. Уровень выполнения по умолчанию — 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 обозначался как
- <span class="quote">«<span class="quote">многопользовательский
- режим без поддержки сети</span>»</span>, тогда, несколько
- пользователей могли подключаться к системе через последовательные
- порты. В сегодняшних условиях это не имеет смысла, и мы
- обозначаем этот уровень как <span class="quote">«<span class=
- "quote">зарезервировано</span>»</span>.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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> допустимые раскладки и
- экранные шрифты. Прочтите справочные страницы <a class="ulink"
- href="https://man.archlinux.org/man/loadkeys.1">loadkeys(1)</a> и
- <a class="ulink" href=
- "https://man.archlinux.org/man/setfont.8">setfont(8)</a>, чтобы
- определить правильные аргументы для этих программ.
- </p>
- <p>
- Файл <code class="filename">/etc/sysconfig/console</code> должен
- содержать строки вида: <code class=
- "envar">ПЕРЕМЕННАЯ=значение</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>.
- Допустимы уровни от <code class="literal">1</code>(нет
- сообщений) до <code class="literal">8</code>. По умолчанию
- <code class="literal">7</code>, что является довольно
- подробным.
- </p>
- </dd>
- <dt>
- <span class="term">KEYMAP</span>
- </dt>
- <dd>
- <p>
- Эта переменная указывает аргументы для программы <span class=
- "command"><strong>loadkeys</strong></span>, обычно это имя
- загружаемой раскладки, например, <code class=
- "literal">it</code>. Если эта переменная не установлена,
- загрузочный скрипт не будет запускать программу 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>. Она полезна, если
- стандартная раскладка вас не совсем устраивает и необходимо
- внести небольшую корректировку. Например, чтобы добавить
- символ евро в раскладку, которая его не содержит, присвойте
- этой переменной значение <code class="literal">euro2</code>.
- </p>
- </dd>
- <dt>
- <span class="term">FONT</span>
- </dt>
- <dd>
- <p>
- Эта переменная определяет аргументы для программы
- <span class="command"><strong>setfont</strong></span>. Обычно
- она включает в себя имя шрифта <code class=
- "literal">-m</code> и имя загружаемой таблицы символов.
- Например, чтобы загрузить шрифт <span class=
- "quote">«<span class="quote">lat1-16</span>»</span> вместе с
- таблицей символов <span class="quote">«<span class=
- "quote">8859-1</span>»</span> (подходит для США), установите
- эту переменную в <code class="literal">lat1-16 -m
- 8859-1</code>. В режиме UTF-8 ядро использует таблицу
- символов для преобразования 8-битных кодов клавиш в UTF-8,
- поэтому аргумент параметра "-m" должен быть установлен на
- кодировку соответствующих кодов клавиш в раскладке.
- </p>
- </dd>
- <dt>
- <span class="term">UNICODE</span>
- </dt>
- <dd>
- <p>
- Присвойте этой переменной значение <code class=
- "literal">1</code>, <code class="literal">yes</code> или
- <code class="literal">true</code>, чтобы переключить консоль
- в режим 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>
- Мы будем использовать <code class="literal">C.UTF-8</code> в
- качестве локали для интерактивных сеансов в консоли Linux в
- <a class="xref" href="locale.html" title=
- "9.7. Настройка системной локали">Раздел&nbsp;9.7, «Настройка
- системной локали,»</a>, поэтому нам следует установить
- значение переменной <code class="literal">UNICODE</code> в
- <code class="literal">1</code>. Консольные шрифты,
- поставляемые пакетом <span class="application">Kbd</span>,
- содержащие глифы для всех символов сообщений программы в
- <code class="literal">C.UTF-8</code> являются <code class=
- "filename">LatArCyrHeb*.psfu.gz</code>, <code class=
- "filename">LatGrkCyr*.psfu.gz</code>, <code class=
- "filename">Lat2-Terminus16.psfu.gz</code> и <code class=
- "filename">pancyrillic.f16.psfu.gz</code> из каталога
- <code class="filename">/usr/share/consolefonts</code> (в
- других поставляемых консольных шрифтах отсутствуют глифы
- некоторых символов Unicode, таких как левые/правые кавычки и
- английское тире). Поэтому установите один из них, например
- <code class="filename">Lat2-Terminus16.psfu.gz</code>, в
- качестве шрифта консоли по умолчанию:
- </p>
- <pre class="userinput"><kbd class=
- "command">cat &gt; /etc/sysconfig/console &lt;&lt; "EOF"
-<code class="literal"># Begin /etc/sysconfig/console
-
-UNICODE="1"
-FONT="Lat2-Terminus16"
-
-# 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
-
-UNICODE="1"
-KEYMAP="ruwin_alt_sh-UTF-8"
-FONT="cyr-sun16"
-
-# End /etc/sysconfig/console</code>
-EOF</kbd></pre>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Для поиска нужной раскладки, выполните команду:
- <span class="command"><strong>find /usr/share/keymaps -type
- f</strong></span>
- </p>
- <p>
- <code class="literal">ruwin_alt-UTF-8</code> - переключение
- раскладки по Alt.
- </p>
- <p>
- <code class="literal">ruwin_alt_sh-UTF-8</code> -
- переключение раскладки по Alt+Shift.
- </p>
- <p>
- <code class="literal">ruwin_cplk-UTF-8</code> -
- переключение раскладки по Caps Lock.
- </p>
- <p>
- <code class="literal">ruwin_ct_sh-UTF-8</code> -
- переключение раскладки по Ctrl+Shift.
- </p>
- <p>
- <code class="literal">ruwin_ctrl-UTF-8</code> -
- переключение раскладки по Ctrl.
- </p>
- <p>
- Посмотреть список доступных шрифтов можно с помощью
- следующей команды: <span class="command"><strong>ls
- /usr/share/consolefonts</strong></span>
- </p>
- </div>
- </li>
- <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.7.4 правильно интерпретирует
- "мертвые" клавиши и слияния, только когда исходные символы
- имеют 8-битные коды. Эта особенность не влияет на раскладки
- для европейских языков, поскольку в них "сливаются" два
- ASCII-символа или добавляются подчеркивания к неподчеркнутым
- ASCII-символам. Однако, в режиме UTF-8 могут быть проблемы,
- например, для греческого языка, когда необходимо подчеркнуть
- символ α. Решением в этой ситуации будет отказ от
- использования 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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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="ru" xml:lang="ru">
- <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="locale.html" title=
- "Настройка системной локали">След.</a>
- <p>
- Настройка системной локали
- </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.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>