Обзор System V
100%

Init · Урок 1

Обзор System V

Узнайте, как традиционная система инициализации System V использует runlevel и упорядоченные ссылки на сценарии служб.

System V init, обычно называемый SysV init или sysvinit, — традиционная модель PID 1 и запуска служб. Она остаётся важной в унаследованных системах и сценариях совместимости, но наличие файлов в стиле SysV не доказывает, что работающим PID 1 является sysvinit.

Определение активной системы инициализации

Проверьте живой PID 1:

$ ps -p 1 -o pid,comm,args=
$ readlink /proc/1/exe

Файл /etc/inittab или каталог /etc/init.d/ — лишь вспомогательные признаки. systemd и другие системы могут сохранять их для совместимости, а контейнеры способны показывать другое пространство PID, чем хост.

Какое доказательство активности sysvinit наиболее надёжно?

Уровни выполнения

Runlevel — именованный числовой режим работы. Конфигурации SysV традиционно используют уровни от 0 до 6 и специальные уровни, но их смысл задаётся политикой дистрибутива, а не универсальным законом. Распространённые соглашения:

  • 0: переход к остановке или выключению;
  • 1 или S: однопользовательский или аварийный режим;
  • 2–5: определяемые дистрибутивом многопользовательские режимы;
  • 6: переход к перезагрузке.

Системы семейства Debian исторически одинаково трактуют уровни 2–5, а соглашения семейства Red Hat различают текстовый и графический режимы. Проверяйте /etc/inittab, документацию init и каталоги runlevel конкретного хоста.

Какой runlevel во многих системах SysV традиционно запрашивает остановку или выключение?

Сценарии init и ссылки runlevel

Сценарии служб обычно находятся в /etc/init.d/. Каталоги вроде /etc/rc2.d/ или /etc/rc.d/rc2.d/ содержат ссылки, имена которых кодируют действие перехода и порядок:

  • SNNname запрашивает запуск;
  • KNNname запрашивает остановку;
  • NN задаёт лексический порядок ссылок этого перехода.

Точный алгоритм и каталоги различаются. Зависимости могут задаваться в заголовках сценариев и обрабатываться инструментами дистрибутива; некоторые реализации выполняют работу параллельно. SysV не гарантирует, что каждая служба всегда запускается строго по одной.

Что традиционно запрашивает ссылка S20networking при входе в runlevel?

Переход между уровнями

При смене runlevel механизм rc дистрибутива останавливает ненужные в новом режиме службы и запускает необходимые. Сценарии должны быть достаточно идемпотентными для повторных операций состояния или перехода и возвращать осмысленные статусы.

Запрос уровней 0 или 6 — разрушительное для доступности всей системы действие. Используйте системный интерфейс выключения, уведомляйте пользователей, сохраняйте активную работу и проверяйте удалённый консольный доступ, а не вызывайте необработанные переходы init без необходимости.

Что традиционно запрашивает runlevel 6?

Ограничения совместимости

На хосте systemd сценарии SysV могут оборачиваться сгенерированными units, но продолжают действовать зависимости, тайм-ауты, журналирование и семантика состояния systemd. Прямой запуск унаследованного сценария способен обойти отслеживание менеджера служб. Определяйте активный менеджер и по возможности используйте его родной интерфейс.

Почему на хосте systemd сценарий в стиле SysV обычно следует вызывать через менеджер служб?

Урок завершён

Вы завершили Обзор System V

Теперь вы можете интерпретировать традиционную компоновку SysV, не предполагая её активности.

  • Определять живой PID 1 до выбора команд init.

  • Считать значения runlevel соглашениями дистрибутива.

  • Читать S, K и числовой порядок ссылок.

  • Использовать контролируемое выключение для уровней 0 и 6.

  • Уважать активный менеджер при наличии сценариев совместимости.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Init