System V init, обычно называемый SysV init или sysvinit, — традиционная модель PID 1 и запуска служб. Она остаётся важной в унаследованных системах и сценариях совместимости, но наличие файлов в стиле SysV не доказывает, что работающим PID 1 является sysvinit.
Init · Урок 1
Обзор System V
Узнайте, как традиционная система инициализации System V использует runlevel и упорядоченные ссылки на сценарии служб.
Определение активной системы инициализации
Проверьте живой 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.
Уважать активный менеджер при наличии сценариев совместимости.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт