Когда система запускается, после чего ядро все настраивает и монтирует корневую файловую систему, она выполняет команду /sbin/init [28]. init - это отец всех системных процессов, и он отвечает за перевод системы на необходимый уровень работы. Мы рассмотрим эти уровни позже (см. «Уровни работы»).
Конфигурационный файл 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'ом. [29]. Вторая виртуальная консоль идентифицируется следующим образом:
2:2345:respawn:/sbin/mingetty tty2 |
[28] Вот почему размещение /sbin не в корневой файловой системе было бы очень плохой идеей. На этом этапе ядро еще не примонтировало ни одного другого раздела, и поэтому не смогло бы найти /sbin/init.
[29] Если вам не нужны 6 виртуальных консолей, вы можете добавить или удалить их, изменив этот файл. Если вы хотите увеличить число консолей, то можете создать их до 64. Но не забудьте, что X тоже выполняется в виртуальной консоли, поэтому оставьте для него по крайней мере одну свободную консоль.