runit - это схема инициализации для Unix-подобных операционных систем, которая инициализирует, контролирует и завершает процессы в операционной системе. Runit - это повторная реализация набора инструментов для наблюдения за процессами daemontools [3], который работает во многих операционных системах на базе Linux, а также в операционных системах macOS, * BSD и Solaris. Runit обеспечивает распараллеливание запуска системных служб, что позволяет ускорить загрузку операционной системы. [4]
Автор (ы) оригинала | Геррит Папе |
---|---|
Первый выпуск | 10 февраля 2004 г . [1] |
Стабильный выпуск | 2.1.2 / 10 августа 2014 г . [2] |
Написано в | C , оболочка |
Операционная система | Linux , BSD , macOS , Solaris |
Тип | Демон инициализации |
Лицензия | Новая лицензия BSD |
Веб-сайт | smarden |
Runit - это демон инициализации , поэтому он является прямым или косвенным предком всех других процессов. Это первый процесс, запускаемый во время загрузки , который продолжается до завершения работы системы.
Дизайн
Runit фокусируется на том, чтобы быть небольшой, модульной и переносимой кодовой базой. Runit разделен на три этапа: однократная инициализация, наблюдение за процессом и остановка или перезагрузка. В то время как первый и третий этапы должны быть адаптированы к конкретной операционной системе, в которой они работают, второй этап переносится на все операционные системы, совместимые с POSIX . [5] Три этапа можно настроить с помощью трех исполняемых файлов (обычно это сценарии оболочки) с именами соответственно 1, 2 и 3.
На этапе 2 обычно вызывается двоичный файл с именем runvdir, который является процессом, отвечающим за глобальное управление демоном: для каждого демона, который он находит в папке, переданной ему с помощью аргумента, он затем порождает отдельного сторожевого таймера, каждый из которых запускает демон (и регистратор сервис, в конечном итоге связанный с ним) и перезапускает его, если он умирает. В случае добавления или удаления демона он убивает сторожевой таймер или запускает новый. Исполняемые файлы с определенными именами используются для описания различных этапов жизни демона (запуск, проверка, завершение, ...), он может перехватывать отправленные сигналы и запускать определенные сценарии, если они существуют, а именованные каналы создаются для доступа к интерфейсам. управлять демоном.
Применение
Runit можно использовать либо как замену [6] для sysvinit , либо как супервизор службы с sysvinit в качестве родительского процесса PID1, который запускает процессы, указанные в файле inittab. [7] Стек программного обеспечения RubyWorks, способного запускать Ruby on Rails, включил Runit в свой пакет. [8]
Принятие
Runit - это система инициализации по умолчанию для:
Рекомендации
- ↑ Папе, Геррит (10 февраля 2004 г.). "Релиз runit-1.0.0" . gmane.comp.sysutils.supervision.general (список рассылки) . Проверено 10 декабря 2013 .
- ^ Папе, Геррит (04.10.2009). «рунит - установка» . smarden.org . Проверено 10 августа 2014 .
- ^ Перселл, Стив (11 ноября 2007 г.). «Сценарии инициализации считаются вредоносными» . sanityinc.com . Проверено 12 декабря 2013 года .
- ^ Папе, Геррит. «рунит - выгода» . Проверено 23 апреля 2013 года .
- ^ Папе, Геррит. «рунит - выгода» . Проверено 23 апреля 2013 года .
- ^ Папе, Геррит. "замена init" . Проверено 11 августа 2014 .
- ^ Папе, Геррит. "использовать с традиционным init" . Проверено 11 августа 2014 .
- ^ «Управление процессами с runit» . rubyworks.rubyforge.org . Проверено 14 апреля 2014 года .
- ^ «VoidLinux» . Проверено 28 июня 2020 .
- ^ https://twitter.com/venomlinux/status/1246023363136380929
Внешние ссылки
- запустить его
- https://github.com/madscientist42/runit