Init: различия между версиями
[непроверенная версия] | [непроверенная версия] |
м Удaлeнa Категория:UNIX; Дoбaвлeнa Категория:Системные и сервисные менеджеры с помощью HotCat |
Semurg (обсуждение | вклад) |
||
Строка 16: | Строка 16: | ||
5 - загрузка в многопользовательском режиме с поддержкой сети и графического входа в систему <br /> |
5 - загрузка в многопользовательском режиме с поддержкой сети и графического входа в систему <br /> |
||
6 - перезагрузка <br /></blockquote> |
6 - перезагрузка <br /></blockquote> |
||
В большинстве Unix/Linux системах, узнать текущий уровень инициализации можно командами: |
|||
:<code>$ runlevel</code> |
|||
:<code>$ who -r</code> |
|||
Набрав init ''n'' в терминале (с правами [[Суперпользователь|суперпользователя]]), где ''n'' — номер уровня инициализации, можно переключиться в любой из вышеперечисленных уровней. |
Набрав init ''n'' в терминале (с правами [[Суперпользователь|суперпользователя]]), где ''n'' — номер уровня инициализации, можно переключиться в любой из вышеперечисленных уровней. |
Версия от 11:56, 15 февраля 2013
init (сокращение от англ. initialization — инициализация) — программа в UNIX и Unix-подобных системах, которая запускает все остальные процессы. Работает как демон и обычно имеет PID 1. Обычно (согласно Filesystem Hierarchy Standard) располагается по пути /sbin/init.
Уровни инициализации
В процессе загрузки, после инициализации ядра, ядро запускает /sbin/init как первый процесс пользовательского режима. init отвечает за дальнейшую загрузку системы. Для этого он запускает так называемые стартовые скрипты, которые выполняют проверку и монтирование файловых систем, запуск необходимых демонов, настройку ядра (в том числе загрузку модулей ядра согласно установленному оборудованию, настройку IP-адресов, таблиц маршрутизации и др.), запуск графической оболочки и другие действия.
В операционных системах Unix/Linux с помощью init можно изменить уровень инициализации. Уровень инициализации — степень загрузки операционной системы. Вот как происходит инициализация системы: процесс init запускается и анализирует файл /etc/inittab. Следует отметить, что приведенная здесь система инициализации работает на системах Linux и Unix System V и она несколько отличается от стиля инициализации системы в BSD-подобных системах.
По умолчанию, в системе использовано 7 уровней инициализации:
0 - остановка системы
1 - загрузка в однопользовательском режиме
2 - загрузка в многопользовательском режиме без поддержки сети
3 - загрузка в многопользовательском режиме с поддержкой сети
4 - не используется
5 - загрузка в многопользовательском режиме с поддержкой сети и графического входа в систему
6 - перезагрузка
В большинстве Unix/Linux системах, узнать текущий уровень инициализации можно командами:
$ runlevel
$ who -r
Набрав init n в терминале (с правами суперпользователя), где n — номер уровня инициализации, можно переключиться в любой из вышеперечисленных уровней.
Стартовые скрипты для каждого уровня находятся в каталогах с /etc/rc0.d до /etc/rc6.d, где цифра после rc соответствует номеру уровня инициализации.
Файл /etc/inittab
Как уже было упомянуто выше, работа процесса init управляется с помощью файла /etc/inittab. Вот пример этого файла (без комментариев):
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon
В первой строке описан терминал и его конфигурация по умолчанию. Сначала в этом файле описываются уровни инициализации. Затем инициируются виртуальные консоли. Запись инициализации консолей состоит из полей, разделенных двоеточием и выглядит следующим образом:
- 1 — порядковый номер консоли
- 2345 — номера уровней инициализации, для которых консоль инициализируется
- respawn — этот параметр означает, что init должен перезапустить обслуживающий консоль процесс после выхода из сеанса или в случае краха.
- /sbin/mingetty tty6 — программа (с указанием параметров), которая будет обслуживать консоль.
Таким образом, вы легко можете создать свой уровень инициализации (под номером 4 или 7, 8…), просто исправив файл /etc/inittab и создав необходимые ссылки в каталоге /etc/rc.d/rc*.d
init в других ОС
В Windows NT роль init играет smss.exe. В Solaris 10 вместо init применяется Service Management Facility. /* init в Solaris 10 запускает и, в случае необходимости, перезапускает SMF (init initiates the core components of the service management facility, svc.configd(1M)and svc.startd(1M), and restarts these components if they fail). Т.е. можно сказать, что в Solaris 10 большая часть функций init выполняется с помощью SMF. */
Альтернативы init
Сейчас существует множество систем, призванных заменить собой классический init: Upstart, Runit, Daemontools, Launchd, Initng, systemd. Все они разрабатывались изначально для определенных дистрибутивов Linux или вообще для других систем.
Ссылки
- From Power Up To Bash Prompt (англ.)
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |