В Начале Был init

Когда система стартует, а после этого ядро конфигурирует все и монтирует корневую файловую систему, она выполняет команду /sbin/init [24]. init это отец всех процессов в системе, и он также отвечает за перевод системы в нужный runlevel. Мы рассмотрим runlevel в следующем разделе.

Конфигурационнный файл init это /etc/inittab. У этого файла есть собственная страница руководства (inittab(5)), но мы все-таки опишем здесь несколько конфигурационных настроек.

Первая строка, на которую нужно обратить внимание это:

si::sysinit:/etc/rc.d/rc.sysinit

Эта инструкция сообщает init что /etc/rc.sysinit должен быть выполнен при инициализации системы (si (System Init) стоит раньше всего другого. Для того, чтобы определить runlevel по умолчанию, init ищет строку с ключевым словом initdefault:

id:5:initdefault:

Для этого случая init знает, что по умолчанию runlevel 5. Кроме того он знает, что для входа в runlevel 5, он должен запустить команду:

l5:5:wait:/etc/rc.d/rc 5

Как вы могли заметить, синтаксис каждого runlevel одинаков.

init также отвечает за перезагрузку (respawn) некоторых программ, которые являются единственным процессом, способным к перезапуску. Это случай, например, для всех login программ , которые запускаются в каждой из 6-ти виртуальных консолей. [25]. Для второй виртуальной консоли это выглядит так:

2:2345:respawn:/sbin/mingetty tty2



[24] Теперь вы видите, что размещение /sbin на отличной от корневой файловой системе - очень плохая идея :-)

[25] Таким образом, вы можете, если нужно, добавлять или удалять виртуальные консоли, максимум до 64, изменяя этот файл и следуя синтаксису. Но не забудьте, что X тоже запускается в виртуальной консоли! Так что оставьте хотя бы одну для него.