Какие системы инициализации применяются в CentOS?

«Какие системы инициализации применяются в CentOS?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В CentOS применяются две основные системы инициализации, которые зависят от версии дистрибутива.

1. SysVinit (традиционная, CentOS 6 и ниже)

  • Управление через скрипты в каталоге /etc/rc.d/init.d/.
  • Использует концепцию уровней запуска (runlevels) от 0 до 6.
  • Основные команды для управления: service и chkconfig.

2. systemd (современная, стандарт для CentOS 7 и выше)

  • Полная замена SysVinit, обеспечивающая параллельный запуск служб, управление зависимостями и централизованное логирование.
  • Конфигурационные файлы (юниты) расположены в /usr/lib/systemd/system/ и /etc/systemd/system/.
  • Основные команды: systemctl (управление службами), journalctl (просмотр журналов).

Практический пример:

# Проверка текущей системы инициализации
ps -p 1 -o comm=

# Управление службой sshd в systemd
systemctl status sshd
systemctl restart sshd

# Управление службой sshd в SysVinit (для совместимости в CentOS 7+ тоже часто работает)
service sshd status

Почему важен переход на systemd? Он решает проблемы SysVinit с последовательным (медленным) запуском, предоставляет мощный механизм контроля зависимостей (Requires, Wants) и унифицированный интерфейс для управления не только службами, но и сокетами, таймерами, точками монтирования.