Как называется первый процесс, запускаемый ядром Linux и отвечающий за загрузку системы и управление процессами?

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

Ответ

Этот процесс называется init. Он всегда имеет PID (Process ID) = 1 и является предком всех остальных процессов в системе.

В современных дистрибутивах роль init выполняют различные init-системы:

  • systemd — стандарт для большинства современных дистрибутивов (RHEL/CentOS 7+, Ubuntu 16.04+, Debian 8+). Помимо запуска процессов, управляет сервисами (юнитами), точками монтирования, сокетами и т.д.
  • SysV init — традиционная система, использовавшаяся ранее, с последовательными runlevel и скриптами в /etc/init.d/.
  • OpenRC — используется в Gentoo и Alpine Linux.
  • runit — минималистичная система, популярная в некоторых специализированных дистрибутивах.

Основные обязанности init-процесса:

  1. Запуск системных сервисов и демонов, указанных в конфигурации.
  2. Перезапуск упавших критически важных сервисов.
  3. Усыновление "сирот" (orphan processes) — процессов, чьи родители завершились.
  4. Очистка системы при завершении работы (корректная остановка сервисов).

Чтобы узнать, какая init-система используется, можно выполнить:

ps -p 1 -o comm=

Эта команда выведет имя процесса с PID=1, например, systemd.