Шрифт:
rc3.d
drwxr-xr-x
2
root
sys
1024
Dec
22
1996
rc4.d
drwxr-xr-x
2
root
sys
1024
Dec
22
1996
rc5.d
drwxr-xr-x
2
root
sys
1024
Dec
22
1996
rc6.d
drwxr-xr-x
2
root
sys
1024
Dec
22
1996
rcS.d
В Linux…
$ pwd
/etc/rc.d
$ ls
init.d rc.local rc0.d rc2.d rc4.d rc6.d
rc rc.sysinit rc1.d rc3.d rc5.d
Если команда cd применяется в одном из каталогов rcN.d, можно просмотреть и другие сценарии rc.scripts, связанные с этими каталогами.
$ pwd
/etc/rc.d/rc2.d
$ ls -1
lrwxrwxrwx
1
root
root
16
Dec 3
15:16
K87ypbind -> ../init.d/yd
lrwxrwxrwx
1
root
root
17
Dec 3
15:10
K89portmap -> ../init.d/p
lrwxrwxrwx
1
root
root
17
Dec 3
15:07
S01kerneld -> ../init.d/d
28.2. Уточнение текущего уровня выполнения
В этой главе не рассматриваются вопросы системного администрирования, однако shell–программист должен знать не только принципы функционирования сценариев rc.scripts, но также принципы их совмещения с каталогами конфигурации уровня выполнения. Для уточнения уровня выполнения примените команду:
$ who -r
run-level 4 Apr 22 13:26 4 0 3
Число, расположенное после слов "run-level" является текущим уровнем выполнения. Следующие за ним данные определяют время выполнения последней перезагрузки системы.
В Linux…
$ runlevel 2 3
В первом столбце указан уровень, на котором система находилась на предварительном этапе, а во втором столбце — текущий уровень, который в данном случае равен 3.
28.3. Ускорение работы с помощью файла inittab
Каталог уровня выполнения состоит из набора сценариев, более совершенных, чем службы. Слово "services" в этом контексте означает и демон, и приложение, и серверы, и подсистемы или процессы сценария. Во время загрузки системы вызывается процесс init (этот процесс является родоначальником всех остальных процессов). Одной из задач упомянутого процесса является определение запускаемых служб, а также определение уровня выполнения, заданного по умолчанию. Эти сведения можно получить, просматривая текстовый файл конфигурации под названием inittab, размещенный в каталоге /etc. Процесс init также использует этот файл для получения указаний по поводу загрузки определенных процессов. Если необходимо изменить этот файл, сначала создайте резервную копию. В случае повреждения файла или возникновения ошибок, приводящих к "деградации" системы, система не будет загружаться обычным образом; вам придется загружаться в однопользовательском режиме и устранять повреждения в файле.
Файл inittab включает поля, имеющие весьма лимитированный формат. Формат файла будет следующий:
id:rstart:action:process
Поле id имеет уникальное название, которое идентифицирует запись процесса,
Поле rstart содержит число, которое указывает, на каком уровне выполнения запускается процесс.
Поле action указывает процессу init, как рассматривать текущий процесс. Существует большое количество названий для поля action, но наиболее распространенными являются wait и respawn. Название wait означает, что начавшийся процесс ожидает завершения. Название respawn означает, что процесс начинается даже в том случае, если он еще не существует. Если же существует, то запускается заново в тот момент, когда он уже завершается.
Поле process содержит действительную команду для выполнения. Ниже приводится фрагмент файла inittab.
$ pg /etc/inittab
id:3:initdefault:
# Инициализация системы.
si::sysinit:/etc/rc.d/rc.sysinit
уровень выполнения 0 10:0:wait:/etc/rc.d/rc 0
уровень выполнения 1 11:1:wait:/etc/rc.d/rc 1
уровень выполнения 2 12:2:wait:/etc/rc.d/rc 2
уровень выполнения 3 13:3:wait:/etc/rc.d/rc 3
уровень выполнения 4 14:4:wait:/etc/rc.d/rc 4
уровень выполнения 5 15:5:wait:/etc/rc.d/rc 5
уровень выполнения 6 16:6:wait:/etc/rc.d/rc 6
Выполнение gettys на стандартных уровнях выполнения
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:234 5:respawn:/sbin/mingetty tty4
5:234 5:respawn:/sbin/mingetty tty0
6:2345:respawn:/sbin/mingetty ttyS1 vt100
Первая строка файла описывает уровень выполнения системы, заданный по умолчанию; ниже приводится уровень выполнения 3, который не является чем-либо необычным.