Автор (ы) оригинала | Геррит Папе |
---|---|
Первый выпуск | 10 февраля 2004 г. ; 17 лет назад ( 2004-02-10) |
Стабильный выпуск | 2.1.2 / 10 августа 2014 г. ; 7 лет назад ( 2014-08-10) |
Написано в | C, оболочка |
Операционная система | Linux, BSD, macOS, Solaris |
Тип | Демон инициализации |
Лицензия | Новая лицензия BSD |
Веб-сайт | smarden.org / runit / |
runit - это схема инициализации и управления службами для Unix-подобных операционных систем, которая инициализирует, контролирует и завершает процессы в операционной системе. Runit является перевыполнение DaemonTools надзорного процесса инструментарий, который работает на многих операционных системах Linux на базе, а также операционных систем BSD и Solaris. Runit обеспечивает распараллеливание запуска системных служб, что может ускорить время загрузки операционной системы.
При запуске в качестве демона инициализации Runit является прямым или косвенным предком всех других процессов. Это первый процесс, запускаемый во время загрузки, который продолжается до завершения работы системы. Он часто используется с другими системами инициализации в качестве отдельного диспетчера служб. В роли диспетчера служб он может использоваться непривилегированными пользователями для управления персональными службами, а также пользователем root для управления службами, которые иначе не управляются системой инициализации, которая используется в настоящее время.
Runit фокусируется на том, чтобы быть небольшой, модульной и переносимой кодовой базой. В роли init Runit разделен на три этапа: однократная инициализация, наблюдение за процессом и остановка или перезагрузка. В то время как первый и третий этапы должны быть адаптированы к конкретной операционной системе, в которой они работают, второй этап переносится на все операционные системы, совместимые с POSIX. Три этапа можно настроить с помощью трех исполняемых файлов (обычно это сценарии оболочки) с именами соответственно 1, 2 и 3.
На этапе 2 обычно вызывается двоичный файл с именем runvdir, который является процессом, отвечающим за глобальное управление демоном: для каждого демона, который он находит в папке, переданной ему с помощью аргумента, он затем порождает индивидуальный сторожевой таймер, каждый из которых запускает демон (и регистратор сервис, в конечном итоге связанный с ним) и перезапускает его, если он умирает. В случае добавления или удаления демона он убивает сторожевой таймер или запускает новый. Исполняемые файлы с определенными именами используются для описания различных этапов жизни демона (запуск, проверка, завершение,...), он может перехватывать отправленные сигналы и запускать определенные сценарии, если они существуют, а именованные каналы создаются для доступа к интерфейсам. управлять демоном.
Runit можно использовать как замену sysvinit или как супервизор службы (с sysvinit в качестве родительского процесса PID1, который запускает процессы, указанные в файле inittab, или в какой-либо другой системе инициализации). Стек программного обеспечения RubyWorks, способного запускать Ruby on Rails, включил Runit в свой пакет.
Runit - это система инициализации по умолчанию для: