Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Загрузка системы Upstart

08 марта 2014

Ubuntu была первым крупным дистрибутивом, сделавшим шаг в сторону от системы Init-V и перешедшим в версии 6.10 к использованию Upstart. Fedora последовала за Ubuntu в своей версии 9. Разумеется, этот переход пока не обходится без проблем: в значительной мере инициализация все еще проходит с помощью традиционных файлов Init-V, совместимость которых с новой системой обеспечивают специальные сценарии. Такой прагматичный подход гарантирует совместимость с многочисленными сетевыми службами, которые еще не приспособлены к работе с Upstart. В будущих версиях Ubuntu и Fedora Upstart должен напрямую заниматься все более значительной частью запуска системы.

Далее будут обобщены важнейшие концепции и рассмотрены конфигурационные файлы версии Upstart 0.6 на базе Ubuntu 9.10. Обратите внимание, что в более ранних версиях Upstart вместо части рассмотренных ниже каталогов конфигурации используются другие каталоги.

Концепция


Концепция Upstart принципиально отличается от Init-V. Upstart — это событийно-ориентированная программа. События происходят при запуске и остановке программ или служб. Upstart обрабатывает события и реагирует на них, запуская или останавливая (другие) службы или инициируя другие события. События также обеспечивают простой обмен информацией между двумя процессами.

Как и в случае с Init-V, программа /sbin/init запускается ядром как первый процесс. Однако эта программа i nit входит в состав Upstart и не имеет ничего общего с программой i nit системы Init-V! Описываемая здесь программа i nit в основном занимается интерпретацией конфигурационных файлов и реагирует на события.

Последовательность событий инициируется командой startup. Это событие автоматически происходит после запуска /sbin/init. Ради совместимости с Init-V в Upstart также предусмотрены уровни запуска. Они реализованы в новой системе как события с названиями runlevel n.

Конфигурация


Файла /etc/inittab в данном случае нет. Вместо этого все конфигурационные файлы находятся в каталоге /etc/init (внимание: в версии 0.3 применялся каталог /etc/events.d, в версии 0.5 — /etc/jobs.d). Программа /sbin/init считывает все CONF-файлы из этого каталога. Типичный конфигурационный файл выглядит так:

<code># /etc/init/ttyl.conf

start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn

exec /sbin/getty -8 38400 ttyl
</code>

Данный файл отвечает за запуск эмулятора терминала (программы getty) в текстовой консоли 1. Команда exec выполняется не сразу, а только тогда, когда произойдет одно из событий, определенных start, то есть после завершения работы сценариев гс2-гс5. Аналогичным образом работа getty завершается, когда произойдет одно из событий, указанных в stop on. Благодаря respawn программа getty автоматически перезапускается, если ее работа прекратится незапланированным образом.

Кроме ключевых слов, указанных выше, есть еще некоторые: команду о запуске программы можно сформулировать не только с помощью exec, но и посредством script / end script. Все строки, находящиеся между этими командами, будут выполнены оболочкой /bin/sh. Если при запуске или остановке работы потребуются дополнительные мероприятия по инициализации или настройке, то соответствующие команды будут сформулированы с помощью per-start script / end script илиpost-stop script / end script. Благодаря указанию console output результаты выполнения программ выводятся на консоль, а не переадресовываются по умолчанию на /dev/null (вывод игнорируется). За реагирование на нажатие клавиш Ctrl+Alt+Delete отвечает файл control-alt-delete.conf.

Совместимость с Init-V


Upstart в том виде, в котором он существует сейчас, запускает далеко не все системные службы. Для того чтобы запустить оставшиеся службы, используется один из сценариев, обеспечивающих совместимость с Init-V, — /etc/init.d/rc или /etc/rc.d/rc. За его запуск отвечают конфигурационные файлы Upstart rc.conf и rcS.conf. Сценарий /etc/init.d/rc работает в полном соответствии требованиям системы Init-V, то есть все сценарии, запускающие и останавливающие программы, выполняются в /etc/rcn.d.

Однако предусмотрена и обратная совместимость: чтобы службы, управляемые Upstart, можно было запускать командами системы Init-V, каталог /etc/init.d/ служб Upstart содержит ссылку на сценарий /lib/init/upstart-job. Этот сценарий отвечает за выполнение подходящих команд Upstart. Итак, если вы выполняете в Ubuntu9.10 /etc/init.d/gdm, сценарий upstart-job выполняет команду stop gdm. Взглянув на ссылки в /etc/init.d, вы сразу же поймете, сколько служб уже выпол-HneTCflcnoMom;broUpstart(ls -l /etc/init.d).

Управляющие команды



В Upstart предусмотрено несколько новых команд. Они предназначены для запуска и остановки процессов, обзора текущих и предстоящих событий и т. д. Обратите внимание, что эти команды предназначены для работы только с теми процессами, которые управляются непосредственно Upstart. Службы, запускаемые через уровень совместимости Init-V, и в дальнейшим администрируются с помощью команд из Debian (в частности, invoke.rc, update-rc.d и т. д.).

Параметр start или stop соответственно запускает или останавливает процесс, для которого в /etc/event.d предусмотрен файл конфигурации; status указывает, в каком состоянии сейчас находится процесс.

<code>root# status tty2

tty2 (start) running, process 4116 root# stop tty2

tty2 (stop) running, process 4116 tty2 (stop) pre-stop, (main) process 4116 tty2 (stop) stopping, process 4116

tty2 (stop) killed, process 4116 tty2 (stop) post-stop tty2 (stop) waiting
</code>

В зависимости от того, какие команды были переданы initctl в виде параметров, сценарий выполняет различные задачи по администрированию системы (см. man initctl). Например, initctl emit eventname создает событие с указанным именем. Такой метод очень практичен при тестировании написанных вами сценариев. Команда initclt list выдает обзор статусов всех действующих в данный момент процессов:

<code>root# initctl list

control-alt-delete (stop) waiting logd (stop) waiting rc-default (stop) waiting rcO (stop) waiting rcl (stop) waiting

tty5 (start) running, process 4113 tty6 (start) running, process 4119
</code>

Уровень запуска



Как уже было сказано выше, Upstart не нуждается в уровнях запуска. Однако ради совместимости с процессом Init-V Upstart моделирует уровни запуска по образцу Init-V. Команда runlevel выдает справку о действующем уровне запуска; telinit n или i nit n активизирует новый уровень запуска п.
Читайте так же:
Запуск системы Debian

Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать