Руни
Оригинальный автор(ы) | Геррит Пейп |
---|---|
Первоначальный выпуск | 10 февраля 2004 г [1] |
Стабильная версия | 2.1.2 / 10 августа 2014 г [2] |
Написано в | С , оболочка |
Операционная система | Linux , FreeBSD , OpenBSD , NetBSD , macOS , Solaris |
Тип | инициализации Демон |
Лицензия | Новая лицензия BSD |
Веб-сайт | смарден |
runit — это схема управления инициализацией и службами для Unix-подобных операционных систем, которая инициализирует, контролирует и завершает процессы во всей операционной системе. Runit — это повторная реализация daemontools . [3] набор инструментов для контроля процессов, который работает во многих операционных системах на базе Linux, а также в операционных системах BSD и Solaris. В Runit реализована возможность распараллеливания запуска системных служб, что позволяет ускорить загрузку операционной системы. [4]
При работе в качестве демона инициализации Runit является прямым или косвенным предком всех других процессов. Это первый процесс , запускаемый во время загрузки , и он продолжает работать до тех пор, пока система не выключится. Он часто используется с другими системами инициализации в качестве отдельного менеджера служб. В роли менеджера служб его могут использовать непривилегированные пользователи для управления персональными службами, а также root для управления службами, которые иначе не управляются используемой в данный момент системой инициализации.
Дизайн
[ редактировать ]Runit стремится стать небольшой, модульной и переносимой кодовой базой. Роль инициализации Runit разделена на три этапа: однократная инициализация, контроль процесса и остановка или перезагрузка. Хотя первый и третий этапы должны быть адаптированы к конкретной операционной системе, в которой они работают, второй этап можно переносить на все POSIX- совместимые операционные системы. [5] Эти три этапа можно настроить с помощью трех исполняемых файлов (обычно это сценарии оболочки) с именами соответственно 1, 2 и 3.
На этапе 2 обычно вызывается двоичный файл с именем runvdir, который является процессом, ответственным за глобальное управление демоном: для каждого демона, который он находит в папке, переданной ему в качестве аргумента, он затем порождает отдельный сторожевой таймер, каждый из которых запускает демон (и регистратор служба, в конечном итоге связанная с ним) и перезапускает его, если он умирает. В случае добавления или удаления демона он убивает сторожевой таймер или запускает новый.Исполняемые файлы с определенными именами используются для описания различных этапов жизни демона (запуск, проверка, завершение...), он может перехватывать сигналы, отправляемые и запускаемые определенными сценариями, если они существуют, а именованные каналы создаются для предоставления интерфейсов. для управления демоном.
Использование
[ редактировать ]Runit можно использовать как замену [6] для sysvinit или в качестве супервизора службы (с sysvinit в качестве родительского процесса PID 1, который запускает процессы, указанные в файле inittab, или в какой-либо другой системе инициализации). [7] Стек программного обеспечения RubyWorks, способный запускать Ruby on Rails, включал в свой пакет Runit. [8]
Принятие
[ редактировать ]Runit — это система инициализации по умолчанию:
- antiX ( на базе Debian , начиная с версии 19)
- Драгора GNU/Linux-Libre (начиная с Dragora 2)
- Пустота Linux [9]
Runit — это «официально» доступная система инициализации для:
- Artix Linux ( на базе Arch )
- Devuan ( на основе Debian , начиная с версии 3.1.0)
- Генту Линукс [10]
- Гипербола GNU/Linux-libre ( на основе Arch и Debian )
Ссылки
[ редактировать ]- ^ Пейп, Геррит (10 февраля 2004 г.). «Выпуск runit-1.0.0» . gmane.comp.sysutils.supervision.general (список рассылки). Архивировано из оригинала 13 декабря 2013 г. Проверено 10 декабря 2013 г.
- ^ Пейп, Геррит (4 октября 2009 г.). «Рунит — установка» . smarden.org . Проверено 10 августа 2014 г.
- ^ Перселл, Стив (11 ноября 2007 г.). «Сценарии инициализации считаются вредными» . sanityinc.com . Проверено 12 декабря 2013 г.
- ^ Пейп, Геррит. "рунит - преимущества" . Проверено 23 апреля 2013 г.
- ^ Пейп, Геррит. "рунит - преимущества" . Проверено 23 апреля 2013 г.
- ^ Пейп, Геррит. «замена инициализации» . Проверено 11 августа 2014 г.
- ^ Пейп, Геррит. «использовать с традиционной инициализацией» . Проверено 11 августа 2014 г.
- ^ «Управление процессами с помощью runit» . Rubyworks.rubyforge.org . Проверено 14 апреля 2014 г.
- ^ «ВойдЛинукс» . Проверено 28 июня 2020 г.
- ^ «Генту» . Проверено 28 апреля 2024 г.