3

Когда процесс init выполняется при загрузке ядра, он читает файл /etc /inittab по принципу «сверху вниз», т.е. выполняет каждую строку так, как она отображается в файле.

Если так и основываясь на моем прочтении и понимании, означает ли это, что он входит в задокументированный уровень выполнения и затем запускает процесс sysinit или наоборот?

Например, общие примеры, которые я видел,

id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

2 ответа2

5

Во-первых, обратите внимание, что формат inittab выглядит так:

Identifier:RunLevel:Action:Command

Ключевым моментом здесь является уровень runlevel . Учитывая следующий пример кода:

a:3::
b:123::
c:23::
d:123::
e:23::

Тогда порядок выполнения различных идентификаторов, начиная с runlevel 1, будет следующим:

init 1:  b d
init 2:  c e
init 3:  a
overall: b d c e a

Как видите, он будет запускать их в том порядке, в котором они перечислены в файле, сгруппированный по уровню запуска ! Также помните, что если идентификатор не находится на указанном уровне выполнения, ему будет выдан SIGTERM а затем SIGKILL .

0

Это не скрипт, который обрабатывается в определенном порядке. Это файл конфигурации, который сообщает системе, какой сценарий / команды нужно выполнить для определенного события или уровня выполнения. Порядок записей в файле не имеет значения, и вы можете иметь несколько сценариев или команд для каждого уровня выполнения.

первая строка, которую вы показываете «id:3:initdefault:», сообщает системе, что уровень запуска по умолчанию - 3 => многопользовательский режим для большинства разновидностей.

строка "si::sysinit:..." указывает системе запускать скрипт /etc/rc.d/rc/sysinit при инициализации системы (запускается при загрузке системы).

если вы используете inittab, вы должны получить список всех опций для файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .