Когда система стартует, а после этого ядро конфигурирует все и монтирует корневую файловую систему, она выполняет команду /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 тоже запускается в виртуальной консоли! Так что оставьте хотя бы одну для него.