Команда Linux init

Linux 命令大全Энциклопедия команд Linux


Что такое команда init

initЭто один из самых важных процессов в системе Linux. Это первый процесс пользовательского уровня (PID=1), создаваемый ядром после загрузки системы, отвечающий за запуск и управление всеми остальными процессами в системе.

Ключевые особенности

  • Управление процессами: Служит родительским процессом для всех процессов
  • Управление уровнями выполнения: Управляет различными рабочими состояниями системы
  • Управление службами: Запускает и останавливает системные службы
  • Инициализация системы: Выполняет сценарии запуска и конфигурацию

Базовый синтаксис команды init

init [运行级别]

Пояснение уровней выполнения

В системе Linux определено 7 стандартных уровней выполнения:

Уровень выполнения Описание Типичное использование
0 Завершение работы Состояние завершения работы системы
1 Однопользовательский режим Обслуживание системы / права root
2 Многопользовательский режим (без NFS) Базовый многопользовательский режим
3 Полный многопользовательский режим Стандартный интерфейс командной строки
4 Зарезервировано Пользовательский
5 Режим графического интерфейса Многопользовательский режим с графическим интерфейсом
6 Перезагрузка Перезагрузка системы

Практическое применение команды init

1. Просмотр текущего уровня выполнения

Пример

who -r
# или
runlevel

2. Переключение уровня выполнения

Пример

init 3  # Переключиться в многопользовательский режим командной строки
init 5  # Переключиться в режим графического интерфейса
init 0  # Выключение
init 6  # Перезагрузка системы

3. Обработка аварийных ситуаций

Пример

init 1  # Войти в однопользовательский режим обслуживания (требуются права root)

Эволюция init в современных Linux-системах

1. System V init

Традиционная система инициализации, использует файл конфигурации /etc/inittab

Пример

# Пример типичной записи inittab
id:3:initdefault:  # Уровень запуска по умолчанию
si::sysinit:/etc/rc.d/rc.sysinit  # Сценарий инициализации системы

2. Upstart (использовался в ранних версиях Ubuntu)

Система инициализации, управляемая событиями

3. systemd (современные распространённые дистрибутивы)

Пример

systemctl isolate multi-user.target  # Эквивалентно init 3
systemctl isolate graphical.target  # Эквивалентно init 5

Практическое занятие

Упражнение 1: Эксперимент с переключением уровней запуска

Переключение с графического интерфейса в режим командной строки

init 3

Наблюдайте за изменениями служб, затем переключитесь обратно на графический интерфейс

init 5

Упражнение 2: Знакомство с режимом обслуживания системы

Войти в однопользовательский режим

init 1

Выполнить проверку файловой системы

fsck /dev/sda1

Примечания

  1. Требования к правам доступа: Команда init обычно требует прав root
  2. Используйте с осторожностью: Прямое использование init 0 или init 6 может привести к потере несохранённых данных
  3. Различия между системами: В разных дистрибутивах могут быть разные реализации init
  4. Влияние на службы: Переключение уровней выполнения остановит/запустит связанные службы

ЧАВО

Вопрос: Почему в моей системе нет файла /etc/inittab?
Ответ: Системы, использующие systemd, больше не нуждаются в inittab; способ настройки изменился

Вопрос: Как установить уровень выполнения по умолчанию?
Для систем с systemd:

systemctl set-default multi-user.target  # 相当于运行级别3

Вопрос: В чём разница между командами init и shutdown?
Обе в конечном итоге выключают систему, но shutdown предоставляет больше возможностей (таких как отложенное выключение, широковещательные уведомления и т. д.)

Linux 命令大全Энциклопедия команд Linux

Другие расширения