При запуске системы, когда ядро всё настроило и примонтировало корневую файловую систему, она выполняет команду /sbin/init[61]. init является родителем для всех системных процессов и отвечает за перевод системы на необходимый уровень выполнения. Мы рассмотрим эти уровни позже (см. Раздел 2, «Уровни выполнения»).
Конфигурационный файл init'а называется
/etc/inittab
и для него есть
отдельная страница руководства
(inittab(5)),
поэтому мы опишем только некоторые из
возможных конфигурационных параметров.
Первая строка, на которую вы должны обратить внимание, это:
si::sysinit:/etc/rc.d/rc.sysinit
Эта строка сообщает init'у, что
/etc/rc.sysinit будет выполнен сразу
после инициализации системы (si
означает System Init). Затем,
чтобы определить уровень выполнения по
умолчанию, init будет искать строку,
содержащую ключевое слово
initdefault
:
id:5:initdefault:
В этом случае init знает, что уровнем выполнения по умолчанию является 5. Он также знает, что для перехода на уровень 5, он должен выполнить следующую команду:
l5:5:wait:/etc/rc.d/rc 5
Как видите, синтаксис для каждого уровня выполнения одинаков.
init также отвечает за перезапуск
(respawn
) некоторых программ,
которые не могут быть запущены другим
процессом. Например, каждая из программ
login, которые работают в 6-ти виртуальных
консолях, запущена init'ом[62]. Вторая виртуальная консоль
определяется следующим образом:
2:2345:respawn:/sbin/mingetty tty2
[61]
Вот почему размещение /sbin
не в
корневой файловой системе было бы очень
плохой идеей. На этом этапе ядро ещё не
примонтировало ни одного другого раздела
и поэтому не смогло бы найти
/sbin/init.
[62] Если вам не нужны 6 виртуальных консолей, вы можете добавить или удалить их, изменив этот файл. Если вы хотите увеличить число консолей, то можете создать их до 64. Но не забудьте, что X тоже выполняется в виртуальной консоли, поэтому оставьте для него по крайней мере одну свободную консоль.