Литмир - Электронная Библиотека
ЛитМир: бестселлеры месяца
Содержание  
A
A

Глава 7. Конфигурация загрузочных скриптов

Введение

Эта глава описывает конфигурацию скриптов, о которых было рассказано в 6 главе. Большинство из тех скриптов будут работать и без дополнительных настроек, но некоторые требуют дополнительной конфигурации, т.к. они зависят он аппаратной конфигурации.

Как взаимодействует процесс загрузки со скриптами?

LINUX использует специальную возможность загрузки именуемой SysVinit Она основана на концепции runlevels. Они могут различаться от системы к системе, но это будет работать в дистрибутиве <вставьте его имя здесь> и в системах типа LFS. LFS имеет собственный путь в конфигурации, но мы уважаем стандарты.

SysVinit (мы называем init с этого места) работает используя схему runlevels. Всего их 7 (от 0 до 6). Может быть и более чем 7, но они создаются в отдельных случаях и в обычных системах не работают. Страница man для init описывает такие случаи. Каждый из уровней runlevels соответствует необходимым вещам, которые компьютер должен выполнить при загрузке этого уровня (runlevels). По умолчанию используется уровень 3 (runlevels). Далее приводится описание каждого уровня (runlevels) и небольшое описание:

0: halt the computer – выключить компьютер 1: single-user mode – однопользовательский режим 2: multi-user mode without networking – многопользовательский режим без сети 3: multi-user mode with networking – многопользовательский режим с сетевыми установками 4: зарезервирован для создания, своего иначе используется так, как 3 5: Также как 4, только с использованием GUI входа в систему (например X'ы xdm или KDE's kdm) 6: перезагрузка компьютера

Команда для изменения runlevels – init где целевой номер runlevel. Для примера: перезагрузить компьютер можно используя команду init 6. Команда reboot только алиас для init 6, как и команда halt алиас для init 0.

Директории, находящиеся в поддиректории /etc/rc.d выглядят как /rc?.d, где d-это номер runlevel и rcsysinit.d который содержит число символических ссылок. Некоторые начинаются на К, другие на S, и все из них имеют двухсимольную цифру, следующую после начальной буквы. Буква К означает останов (kill) службы, а S означает запуск службы. Число после буквы означает порядок, в котором скрипты будут запускаться. Числа могут иметь значения от 00 до 99, и чем меньше число, тем раньше запуститься скрипт. Когда init переключается на другой уровень, то службы предназначенные для одного runlevel`a убиваются, и другие запускаются.

Главные скрипты располагаются в директории /etc/rc.d/init.d. Они выполняют всю работу и все симлинки указывают на них. Симлинки для запуска и остановки указывают на скрипт в директории /etc/rc.d/init.d с таким же именем. Поэтому скрипты могут быть вызваны с различными параметрами, например start, stop, restart, reload, status. Когда скрипту передается аргумент stop, то вызывается К симлинк. Когда скрипту передается аргумент start, то вызывается S симлинк.

Есть только одно исключение. симлинки начинающиеся с S в директориях rc0.d и rc6.d не могут быть запущены никогда. Они могут бать вызваны только с параметром stop для остановки чего либо. Логика состоит в том, что если вы перезапустили или остановили систему, вам не надо запускать что либо, а только остановить систему.

Здесь предоставлены описания аргументов, передаваемых в скрипты, и заставляющих их выполнять что либо:

start: Запуск службы

stop: Останов службы

restart: Перезагрузка службы. Сначала останов службы, потом запуск.

reload: Обновить конфигурацию службы. Используется когда конфигурационный файл данной службы был изменен. Перезапуск службы не требуется.

status: Опросить службу. Выдается информация о том, запущена служба или нет, ее PIDs.

Почувствуйте свободу в создании собственных процессов загрузки (на вашей собственной системе LFS). Все поля, данные здесь – лишь примеры, о том, как лучше сделать (если вы знаете, что вам надо – сделайте так, как вы хотите).

Настройка скрипта setclock

Скрипт setclock считывает информацию о времени из BIOS компьютера и конвертирует его во время вашего часового пояса используя файл /etc/localtime (если значение в BIOS соответствует GMT) или нет (если значение в BIOS соответствует местному времени). Само ничего не конфигурируется (это вам не винда), поэтому лезем править сами:

Измените значение переменной UTC отличной от (нуля) в случае, если ваши часы не установлены по времени GMT.

Создайте файл /etc/sysconfig/clock запустив следующую команду:

cat > /etc/sysconfig/clock << «EOF»

# Begin /etc/sysconfig/clock

UTC=1

# End /etc/sysconfig/clock

EOF

Теперь вы можете посмотреть на неплохие примеры, позволяющие лучше понять механизм установки временной зоны на LFS http://hints.linuxfromscratch.org/hints/time.txt. Там объясняются такие понятия как timezones, UTC, и переменная окружения TZ.

Что надо для загрузки loadkeys скриптов?

Если вы решили вкомпилить вашу раскладку (keymap) напрямую в ядро, вернитесь в конец 6-й главы, где вам четко сказано, что не требуется его (скрипт) запускать, если вы уже вкомпилили раскладку (keymap) в ядро. Но вы можете запустить крипт если хотите – ничего страшного. Это может потребоваться в случае, если у вас есть несколько разных ядер, и вы не помните: вкомпилировали-ли вы в каждое ядро раскладку.

Если вы решили, что вам это не надо, или вы не хотите использовать скрипт loadkeys удалите этот /etc/rc.d/rcsysinit.d/S70loadkeys симлинк.

Настройка скрипта sysklogd

Скрипт sysklogd вызывает программу syslogd с опцией –m 0 Эта опция выключает периодические записи mark в лог файлы каждые 20 минут (значение по умолчанию). Если вы хотите включить периодические записи mark подредактируйте скрипт sysklogd на предмет необходимых изменений. Смотрите man syslogd для более детальной информации.

Конфигурация скриптов localnet.

Частью установки скриптов, относящихся к localnet, является установка имени компьютера. Это требуется для правильной настройки /etc/sysconfig/network.

Создайте файл /etc/sysconfig/network file и введите имя компьютера запустив следующее:

echo «HOSTNAME=lfs» > /etc/sysconfig/network

«lfs» может быть заменено другим именем компьютера (как захотите, мы используем для примера имя lfs. Вам не надо вводить полное имя FQDN (Fully Qualified Domain Name).Эта информация будет храниться в файле /etc/hosts. Мы запишем ее позже.

38
{"b":"85741","o":1}
ЛитМир: бестселлеры месяца