3. Обзор Upstart

Upstart был разработан Canonical, поэтому некоторое время он был реализацией init в Ubuntu; однако в современных установках Ubuntu теперь используется systemd. Upstart был создан для улучшения проблем с SysV, таких как строгие процессы запуска, блокировка задач и т. д. Событийно-ориентированная модель Upstart позволяет ему реагировать на события по мере их возникновения.

Чтобы узнать, используете ли вы Upstart, если у вас есть каталог /usr/share/upstart, это довольно хороший признак.

Задания (Jobs) — это действия, которые выполняет Upstart, а события (Events) — это сообщения, получаемые от других процессов для запуска заданий. Чтобы просмотреть список заданий и их конфигурацию:

pete@icebox:~$ ls /etc/init
acpid.conf                   mountnfs.sh.conf
alsa-restore.conf            mtab.sh.conf
alsa-state.conf              networking.conf
alsa-store.conf              network-interface.conf
anacron.conf                 network-interface-container.conf

Внутри этих конфигураций заданий вы найдете информацию о том, как и когда запускать задания.

Например, в файле networking.conf может быть указано что-то простое, например:

start on runlevel [235]
stop on runlevel [0]

Это означает, что он начнет настраивать сеть на runlevel 2, 3 или 5 и остановит сеть на runlevel 0. Существует множество способов написания конфигурационного файла, и вы обнаружите это, просмотрев различные доступные конфигурации заданий.

Принцип работы Upstart заключается в следующем:

  1. Сначала он загружает конфигурации заданий из /etc/init.
  2. Как только происходит событие запуска (startup event), он запускает задания, вызванные этим событием.
  3. Эти задания создают новые события, а затем эти события запускают другие задания.
  4. Upstart продолжает делать это до тех пор, пока не завершит все необходимые задания.

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

Вход

Упражнения

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

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

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

Тест

Какая реализация init используется в Ubuntu?