1. Обзор System V

Основная роль системы инициализации (init) заключается в запуске и остановке критически важных процессов. В Linux существует три основные реализации init: System V, Upstart и systemd. Этот урок посвящен самой традиционной версии — System V init, которую часто называют SysV или просто systemv (произносится «Систем Файв»).

Чтобы определить, использует ли ваша система реализацию systemv, проверьте наличие файла /etc/inittab. Если этот файл существует, вы, скорее всего, используете дистрибутив на базе SysV.

Как System V управляет процессами

Процесс systemv init запускает и останавливает службы последовательно. Например, если служба с именем foo-b зависит от foo-a, foo-b не может запуститься, пока foo-a полностью не заработает. Система initv достигает этого с помощью сценариев оболочки (shell scripts). Эти сценарии, расположенные в определенных каталогах, отвечают за запуск и остановку служб. Хотя вы можете писать собственные сценарии, большинство систем полагаются на предустановленные, которые управляют основными службами ОС.

Преимущества и недостатки

Основное преимущество этого последовательного подхода — его простота и предсказуемость. Устранение неполадок с зависимостями прямолинейно, поскольку вы знаете, что foo-a всегда запускается перед foo-b. Однако главный недостаток модели init v — это производительность, поскольку службы обычно запускаются по одной, что приводит к более длительному времени загрузки по сравнению с современными параллельными системами.

Понимание уровней выполнения (Runlevels) в System V

В среде systemv состояние машины определяется уровнями выполнения (runlevels), пронумерованными от 0 до 6. Эти режимы могут немного различаться в разных дистрибутивах Linux, но, как правило, они следуют этому стандартному соглашению:

  • 0: Выключение (Shutdown)
  • 1: Режим одного пользователя (Single User Mode)
  • 2: Многопользовательский режим без сети
  • 3: Многопользовательский режим с сетью
  • 4: Не используется
  • 5: Многопользовательский режим с сетью и графическим интерфейсом (GUI)
  • 6: Перезагрузка (Reboot)

Сценарии и каталоги Init

При загрузке системы она проверяет настроенный уровень выполнения и выполняет соответствующие сценарии. Эти сценарии обычно находятся в каталогах, таких как /etc/rc.d/rc[runlevel].d/ или в центральном каталоге /etc/init.d. Сценарии, начинающиеся с S (Start — Запуск), выполняются при запуске, а те, что начинаются с K (Kill — Остановка), выполняются при выключении. Числа, следующие за S или K, определяют порядок выполнения.

Например:

pete@icebox:/etc/rc.d/rc0.d$ ls
K10updates  K80openvpn

В этом примере при переключении на уровень выполнения 0 (выключение) сначала будет выполнен сценарий для остановки службы обновлений, а затем сценарий для OpenVPN. Вы можете найти уровень выполнения по умолчанию для вашей машины в файле /etc/inittab, где вы также можете его изменить.

Важно отметить, что System V был в значительной степени заменен systemd в большинстве современных дистрибутивов Linux. Тем не менее, вы все еще можете столкнуться с концепцией уровней выполнения в новых системах init, поскольку они часто предоставляют уровень совместимости для поддержки устаревших служб, которые полагаются на сценарии systemv init.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика ведет к совершенству! Вот несколько практических лабораторных работ для закрепления вашего понимания управления процессами Linux и системной конфигурации, которые являются основой работы систем инициализации:

  1. Управление процессами Linux и мониторинг — Практикуйтесь во взаимодействии с процессами на переднем и заднем планах, просматривайте их с помощью ps, отслеживайте ресурсы с помощью top и завершайте их с помощью kill. Это напрямую связано с аспектом init «запуск и остановка критически важных процессов».
  2. Планирование задач с помощью at и cron в Linux — Узнайте, как планировать одноразовые и повторяющиеся задачи, что расширяет концепцию автоматического выполнения, аналогично тому, как сценарии init управляют службами.
  3. Управление разрешениями файлов и каталогов в Linux — Поймите, как управлять разрешениями файлов и каталогов, что является критически важным навыком для работы с файлами системной конфигурации и сценариями, подобными тем, что находятся в /etc/init.d.

Эти лабораторные работы помогут вам применить концепции в реальных сценариях и повысить уверенность в выполнении основных задач системного администрирования Linux.

Тест

Какой уровень выполнения обычно используется для выключения системы?