Аллен Питер В.
Шрифт:
В списке текущих процессов, который вы видели по команде
Ядро монтирует корневую файловую систему в режиме «только чтение», находит исполняемый файл демона init (в каталоге
Ядро покорно запустит в качестве первопроцесса любую программу, которую вы укажете ему как init:
Конечно, оболочка sh не запустит других процессов, но она предоставит вам интерфейс командной строки, в которой вы сможете выполнить необходимые ремонтные работы.
Процесс init прочитывает свой конфигурационный файл
Уровень выполнения (runlevel) — это такой режим работы системы, в котором разрешается существование только определенной группы процессов. В каждый момент времени система находится на одном из уровней выполнения (на каком именно, можно узнать по команде
Разрешенные на каждом уровне процессы указаны в файле
♦ семь уровней выполнения, обозначаемых номерами с 0 до 6;
♦ особый уровень S или s — однопользовательский;
♦ уровни по требованию (ondemand) А, В и С — фиктивные: при переходе на эти уровни запускаются приписанные к ним процессы, но текущий уровень выполнения не меняется.
Термин «уровень выполнения» унаследован от тех времен, когда система была обязана проходить уровни последовательно, от низшего к высшему при загрузке и обратно при выключении. Сейчас их можно переключать в любом порядке. Для переключения на уровень n нужно от имени суперпользователя ввести команду
Эта команда посылает соответствующий сигнал процессу init (tell init). Ее исполняемый файл представляет собой символическую ссылку на
Запустив все процессы, приписанные к текущему уровню выполнения, init засыпает до получения сигнала о завершении дочернего процесса, отключении питания или требовании переключить уровень. Тогда он просыпается, перечитывает свой конфигурационный файл и, если нужно, выполняет записанные в нем инструкции. Чтобы заставить его перечитать измененный вами
Важно понять, что уровень выполнения — это программная абстракция, аппаратура ни о каких уровнях не знает. Поэтому в разных реализациях Linux (разных дистрибутивах) одному уровню могут соответствовать разные конфигурации системы. Следующие уровни используются в дистрибутивах, основанных на Red Hat:
♦ 0: Останов системы.
♦ 1: Однопользовательский режим. То же, что уровень S.
♦ 2: Многопользовательский режим без поддержки сети.
♦ 3: Полный многопользовательский режим.
♦ 4: Не используется.
♦ 5: Графический режим с X11.
♦ 6: Перезагрузка.
В однопользовательском режиме никакие службы не стартуют: только грузится ядро, монтируется корневая файловая система и запускается командный интерпретатор. На этом уровне не нужен даже файл
Неиспользуемые уровни можно занять под свою собственную конфигурацию служб, собранных для конкретной задачи.
Первая незакомментированная строка этого файла определяет уровень выполнения по умолчанию, то есть тот, в котором стартует система, если в процессе загрузки ядру не указано иначе. Эта строка выглядит как
Обычно в качестве уровня по умолчанию выбирают 3 (полнофункциональный многопользовательский текстовый режим) или графический 5 (запускается X Window и выдается графическое приглашение для входа в систему). Если оставить поле уровня пустым, то init переспросит значение в процессе загрузки. Если указать в поле уровня несколько значений, то сработает наибольшее. Уровни 0 (останов) и 6 (перезагрузка) указывать нельзя.