Релиз системы инициализации Upstart 1.6

Представлен релиз системы инициализации Upstart 1.6, изначально разработанной компанией Canonical и ныне используемой в дистрибутивах Ubuntu и RedHat Enterprise Linux 6, а также в проектах Maemo, Chrome OS и webOS. В отличии от стандартной init-системы SysV, Upstart базируется на парадигме обработки событий, работает в асинхронном режиме и использует метод учета зависимостей для определения последовательности запуска сервисов и оценки возможности их выполнения в параллельном режиме. Параллелизм запуска сервисов обеспечивает существенное повышение скорости загрузки, но ценой этому является необходимость определенной переработки init-скриптов (поддерживается режим совместимости, позволяющий запускать обычные sysvinit-скрипты, но эффективность загрузки и работы при этом теряется).

В новой версии:

  • Улучшена обработка ошибок;
  • Добавлена поддержка загрузки без initramfs;
  • Обеспечена работа тестов в окружении sbuild;
  • Команда 'telinit u' теперь выполняет перезапуск Upstart с сохранением состояния, что позволяет продолжить контроль за выполнением задач после обновления самого Upstart или связанных с ним библиотек;
  • В список зависимостей добавлена библиотека libjson (JSON-C).

Особенности Upstart:

  • Запуск и остановка задач и сервисов производится через генерацию события. Например, Upstart может запустить определенные сервисы после подключения к системе дополнительного устройства и завершить после его отключения;
  • События генерируются при запуске или остановке задач и сервисов, что позволяет организовать привязку к ним других задач и сервисов;
  • События могут быть получены от любого другого процесса в системе;
  • Сервисы могут быть автоматически перезапущены при их непредвиденном завершении;
  • Наблюдение и перезапуск демонов может производиться раздельно от их родительских процессов;
  • Связь с управляющим init-процессом может осуществляться посредством D-Bus;
  • Генерация событий в промежутки времени или через определенные интервалы, а также при изменении файлов или директорий.

© OpenNet