FreeSource : DmitrijMaslennikov/initng

Общая информация
init-ng — одна из реализаций процесса, предназначенного, чтобы запускаться самым первым в Unix-системах.
Так как про все Unix-системы я пока уверенно рассказывать не могу, то всё, что я пишу здесь доподлинно верно только для Linux и переносить эту информацию на другие системы нужно осторожно.

Другая популярная реализация init процесса (а он так называется поскольку его главное предназначение – инициализировать систему) — это SysV-init, который и используется в большинстве Linux дистрибутивах на сегодняшний день.

Если не ошибаюсь первый процесс выполняет две основные задачи (может и больше, но все ограничиваются этими :) ): получение статуса завершившихся приложений и инициализация системы перед работой. Кстати вторую задачу init процесс традиционно перепоручает большому количеству bash-скриптов. При этом эти скрипты сильно меняются от системы к системе.

init-ng запускает скрипты в своем формате, который содержит информацию о зависимостях скрипта (ключевое свойство для организации параллельной загрузки), информацию о том, что даный скрипт предоставляет (например postfix и sendmail предоставляют mta) и другую информацию. Запускаемые сущности в init-ng бывают двух типов daemon и service. daemon — требует указания запускаемого бинарника, аргументов запуска окружения. init-ng может следить за демоном и при необходимости рестартовать его и много чего еще. Останавливается daemon посылкой сигнала. service — требует указания команд для запуска и остановки или написания соответствующих скриптов. К сожалению, ничего кроме запуска и остановки init-ng не предоставляет.

Тем не менее все недостающие возможности можно добавить написав плагин на С. Плагины это всё, что есть в init-ng. Они парсят файлы конфигурации (есть два плагина для ifile и xml форматов), добавляют команды к файлам, позволяют управлять самим init-ng и многое другое. Сейчас даже разрабатывается плагин с функциональностью аналогичной crond. Плагинов довольно много, и у меня это вызывает некоторые опасения насчет стабильности системы (а первый процесс должен быть очень стабильным).

Страницы, ссылающиеся на данную: DmitrijMaslennikov