hostprofi.ru
Подобрать хостинг
Термин·буква S

SysVinit

краткое определение

SysVinit (System V init) — традиционная система инициализации Unix-систем, используемая со времён Unix System V (1983). Запускает процессы по уровням выполнения (runlevels) через shell-скрипты в /etc/init.d/. Вытеснена systemd в большинстве современных Linux-дистрибутивов.

SysVinit — система инициализации процессов (PID 1), унаследованная от Unix System V. Первый процесс, запускаемый ядром Linux. Читает конфигурацию из /etc/inittab и определяет текущий уровень выполнения (runlevel), затем запускает или останавливает сервисы через скрипты в /etc/init.d/.

Уровни выполнения (runlevels)

  • 0 — выключение системы
  • 1 — однопользовательский режим (rescue)
  • 2 — многопользовательский без сети (Debian)
  • 3 — многопользовательский с сетью (RHEL)
  • 5 — многопользовательский с графикой
  • 6 — перезагрузка

SysVinit vs systemd

Главный недостаток SysVinit — последовательный запуск сервисов: каждый скрипт выполняется по очереди. systemd запускает сервисы параллельно, отслеживает зависимости между ними и значительно ускоряет загрузку. Также systemd предоставляет журналирование (journald), управление сокетами и таймерами.

Ubuntu перешёл на systemd в версии 15.04 (2015). Debian — в версии 8 Jessie (2015). RHEL — в версии 7 (2014). Gentoo и Devuan поддерживают SysVinit как альтернативу systemd.

История

Unix System V (AT&T, 1983) ввёл init со скриптами. BSD развивал альтернативный rc.conf-стиль. Linux принял SysVinit в 1990-х. Upstart (Ubuntu, 2006) и Launchd (macOS, 2005) стали первыми альтернативами. Systemd создан Ленартом Поттерингом из Red Hat в 2010 году и принят большинством дистрибутивов к 2015 году.

Связь с хостингом

На современных серверах с Ubuntu 16.04+ или RHEL 7+ используется systemd. SysVinit встречается на старых серверах и встраиваемых системах (OpenWrt, Alpine Linux). Управление сервисами через systemctl start/stop/enable — стандарт для современных хостинг-серверов.

История SysVinit

SysVinit (System V init) — система инициализации Unix, разработана AT&T для Unix System V в 1983 году. Долгое время была стандартом в Linux: Debian, Ubuntu до 2014 года, RHEL до версии 7. Принцип работы — последовательный запуск скриптов из директорий /etc/rc0.d//etc/rc6.d/ согласно уровням запуска (runlevel 0–6). В 2014 году Debian перешёл на systemd, в 2015 — Ubuntu. SysVinit сохранился в Devuan Linux (форк Debian без systemd) и в нескольких встроенных дистрибутивах.

SysVinit vs systemd vs Upstart

ПараметрSysVinitsystemdUpstart
Параллельный запускнетдада
Зависимости сервисоввручнуюавтоматическичастично
Время загрузкимедленнобыстросреднее
Мониторинг сервисовнетjournaldнет

Управление сервисами через SysVinit

Команды: service nginx start, service nginx stop, chkconfig nginx on (RHEL). Скрипты находятся в /etc/init.d/. При переходе на systemd совместимость сохраняется через обёртки. На современном VPS-хостинге SysVinit практически не встречается.

Типичные ошибки

  • Написание init-скриптов без set -e — ошибки игнорируются молча.
  • Отсутствие LSB-заголовков в скриптах — порядок запуска не определён.
  • Попытка использовать systemctl на системе с SysVinit — команда не существует.

SysVinit использует числовые уровни запуска (runlevels), унаследованные от Unix System V: уровень 3 — многопользовательский без GUI, уровень 5 — с графическим интерфейсом. Скрипты хранятся в /etc/init.d/, симлинки в /etc/rc3.d/. На современных Ubuntu Server и RHEL SysVinit заменён systemd.

Другие термины