Как называется самый первый процесс, запускаемый в Linux?

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

Ответ

Самый первый процесс, которому ядро Linux присваивает PID 1, исторически назывался init. В современных дистрибутивах его роль выполняют системы инициализации:

  • systemd: Стандарт для большинства современных дистрибутивов (RHEL, Ubuntu, Debian).
  • runit, OpenRC: Используются в некоторых lightweight-дистрибутивах (Void Linux, Alpine).

Роль процесса с PID 1:

  1. Инициализация системы: Монтирование файловых систем, запуск сервисов.
  2. Управление сервисами: Запуск, остановка, перезагрузка демонов.
  3. Перезапуск завершившихся демонов.
  4. Прием и обработка сиротских процессов (zombie reaping).

Проверка:

ps -p 1
# Вывод: PID TTY      STAT   TIME COMMAND
#         1 ?        Ssl    0:05 /usr/lib/systemd/systemd

# Просмотр дерева процессов, запущенных от systemd
systemctl status
pstree -p 1

В контексте контейнеров (Docker) PID 1 внутри контейнера — это процесс, указанный в ENTRYPOINT или CMD. Важно, чтобы он корректно обрабатывал сигналы (например, SIGTERM) для graceful shutdown.