Оценить:
 Рейтинг: 3.6

Linux

<< 1 ... 45 46 47 48 49 50 51 52 53 ... 57 >>
На страницу:
49 из 57
Настройки чтения
Размер шрифта
Высота строк
Поля
• перемонтирование корневой файловой системы в режим чтения/записи;

• перенастройка таблицы монтирования /etc/mtab;

• проверка квот для корневой файловой системы;

• проверка необходимости загрузки модулей, нахождение зависимостей, загрузка и конфигурирование модулей;

• подключение RAID-устройств;

• запуск fsck для других систем;

• монтирование локальных файловых систем;

• включение механизма квот;

• удаление тригерных файлов загрузки;

• очистка каталогов /var/lock и /var/run;

• очистка файлов /var/run/utmp и /var/run/utmpx;

• удаление файлов-защелок из /tmp;

• включение подкачки;

• инициализация последовательных устройств, используя скрипт /etc/rc.d/rc.serial;

• загрузка модулей для SCSI-стримера;

• генерация файла заголовка для определения загружаемого ядра командой /sbin/mkkerneldoth;

• установка ссылки /boot/System.map;

• проверка использования интерактивного режима загрузки и, в случае необходимости, создание файла /var/run/confirm.

Запуск проверки файловой системы командой fsck может быть принудительно отключен при наличии файла /fastboot, а также включен при наличии /forcefsck. Создать эти файлы можно выполнением команды shutdown с соответствующими ключами. Однако не рекомендуется злоупотреблять этими возможностями.

Sysctl позволяет зафиксировать ряд параметров и обеспечить (через /etc/sysctl.conf) их установку после перезагрузки. Вот как выглядит /etc/sysctl.conf сразу после инсталяции системы:

# Disables packet forwarding

net.ipv4.ip_forward = 0

# Enables source route verification

net.ipv4.conf.all.rp_filter = 1

# Disables the magic-sysrq key

kernel.sysrq = 0

rc

Прежде чем приступить к разбору скрипта гс, необходимо упомянуть о каталогах /rcX.d и /init.d. Уточним еще раз – иерархия /rcX.d характерна для дистрибутивов Red Hat и базирующихся на нем, в других дистрибутивах и в UNIX-системах их может и не быть. Эти каталоги играют исключительную роль в процессе загрузки, поскольку они содержит основные скрипты, необходимые для организации процесса загрузки.

Подкаталог /init.d содержит по одному скрипту для каждой из служб, установленных в системе (sendmail, HTTP, Samba, FTP и т. п.). Этот скрипт отвечает за запуск, остановку или перезагрузку соответствующей службы. В каталоге /rcX.d находятся ссылки на файлы скриптов, как правило расположенные в каталоге /etc/rc.d/init.d. Названия этих ссылок имеют имена, начинающиеся либо с буквы К, либо с буквы S, после которой вдет двухзначное число и имя соответствующей службы. Буквы S и К – первые буквы слов start и kill соответственно. Из этого следует, что файл, начинающийся с буквы S, отвечает за старт соответствующего процесса, а файл, начинающийся с буквы К, отвечает за остановку соответствующего процесса. Цифры, идущие после S или К в именах ссылок, задают порядок запуска скриптов.

Заглянем в файл гс. Первым делом скрипт пытается определить текущий уровень выполнения и уровень выполнения, в который необходимо перевести систему. После этого он проверяет, нажимал ли пользователь букву I для перехода в режим пошаговой загрузки процессов. Затем скрипт останавливает запущенные на предыдущем уровне выполнения процессы, отсутствующие на новом уровне выполнения, а потом запускает необходимые службы для нового уровня выполнения. Как правило, одна и та же служба нужна на нескольких уровнях. Поэтому не имеет смысла эту службу при переходе с одного уровня выполнения на другой останавливать и тут же запускать. В Linux для этой цели используются специальные флаги.

В качестве флагов служат файлы в каталоге /var/lock/subsys/${subsys} или /var/lock/subsys/${subsys}.init, где subsys – имя соответствующей службы. Если файлов нет, то данный процесс считается незапущенным (запуск S-файла имеет смысл), а если есть – запущенным (запуск К-файла имеет смысл). Так же для программы linuxconf создается специальный флаг /var/run/rimlevel.dir, из которого можно узнать текущий уровень выполнения системы.

Для управления набором доступных служб в текущем уровне выполнения можно использовать программу конфигурирования linuxconf, программу ntsysv (рис. 6.1), /usr/sbin/setup или графическую программу Control-panel (рис. 6.2).

Рис. 6.1. Программа ntsysv

Рис. 6.2. Программа Control-panel

Можно сконфигурировать набор доступных сервисов и вручную. Для запрета старта какого-либо сервиса достаточно просто удалить соответствующую ссылку (SXXlalala) из необходимого каталога /rcX.d, а для разрешения – создать соответствующую ссылку в нужном каталоге /rcX.d. Однако не следует забывать помимо стартовой ссылки создавать стоповую, иначе возможны проблемы, когда система некорректно завершит функционирование сервиса, для которого забыли создать стоповую ссылку. А как же корректно установить порядковый номер у соответствующей ссылки? Конечно, можно чисто эмпирически подобрать номер, исходя из функций, выполняемых сервисом. Но давайте заглянем в любой файл в каталоге /etc/rc.d/init.d/, к примеру, в файл anacron:

#!/bin/sh

# Startup script for anacron

# chkconfig: 2345 95 05

# description: Run cron jobs that were left out due to downtime

# Source function library.

. /etc/rc.d/init.d/functions

[-f /usr/sbin/anacron] || exit 0

prog="anaсron"

start () {

echo -n $"Starting $prog: "

daemon anacron

RETVAL=$?

[$RETVAL – eq 0] && touch /var/lock/subsys/anacron

echo

return $RETVAL

<< 1 ... 45 46 47 48 49 50 51 52 53 ... 57 >>
На страницу:
49 из 57

Другие электронные книги автора Алексей Александрович Стахнов