Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Для FreeBSD развивают новый системный менеджер rcd

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 2329
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 60 раз
Поблагодарили: 28 раз

Для FreeBSD развивают новый системный менеджер rcd

Сообщение root:# »

Для FreeBSD развивают новый системный менеджер rcd
Батист Даруссен (Baptiste Daroussin), член FreeBSD Core Team и автор пакетного менеджера pkg, развивает новый системный менеджер для FreeBSD - rcd. Системный менеджер rcd вызывается init-процессом вместо /etc/rc, читает файлы конфигурации сервисов (/etc/rcd.d/*.ucl), строит дерево зависимостей и запускает сервисы по возможности параллельно друг с другом, после чего отслеживает работу сервисов и при необходимости их перезапускает. Управление фоновым процессом и операции с сервисами может осуществляться через прямую передачу команд в UNIX-сокет или при помощи утилиты командной строки rctl. Unit-файлы с параметрами сервисов оформляются в формате UCL, который напоминает формат файлов конфигурации nginx и bind с элементами для упрощения автоматизированной обработки, заимствованными из JSON. Предоставляется возможность создания шаблонов типовых unit-файлов и написания встроенных обработчиков на языке Lua. Пример unit-файла для запуска nginx: name = "nginx"; description = "Nginx HTTP Server"; type = "simple"; command = "/usr/local/sbin/nginx"; command_args = "-g 'daemon off;'"; provides = ["nginx", "http"]; requires = ["NETWORKING", "sshd"]; restart { policy = "always"; max_retries = 10; delay = 2000; backoff = "linear"; } process { user = "www"; group = "www"; cpuset = "0-3"; } rctl { memoryuse = { action = "deny"; amount = "2g"; }; pcpu = { action = "throttle"; amount = "80"; }; } Вместо работы с PID-файлами отслеживание активности запущенных процессов осуществляется с использованием дескрипторов, возвращаемых системным вызовом pdfork(). Имеется поддержка активации сервисов только при обращении к сетевому сокету и возможность защиты важных сервисов от принудительного завершения в случае нехватки памяти в системе. Возможно обновление версии фонового процесса rcd на лету без потери состояния. Для ограничения доступных сервису ресурсов применяется rctl, а для полной изоляции сервисов поддерживается их запуск в jail-окружениях. Возможна настройка доступа к управляющему UNIX-сокету в привязке к отдельным сервисам. Поддерживается переход в спящий режим. Системный менеджер полностью обратно совместим с существующей системой последовательного запуска сервисов rc.d и может работать без изменения имеющихся rc.d-скриптов и файлов конфигурации. Достаточно установить rcd на работающую систему и после перезапуска всё продолжит функционировать как раньше, за исключением сокращения времени загрузки за счёт распаралелливания запуска сервисов. Подобная совместимость упростит миграцию систем на rcd и даст возможность постепенно переводить в формат unit-файлов имеющиеся rc.d-скрипты. Для совместимости с rc.d поддерживается специальный тип unit-ов "legacy". Rcd сканирует содержимое /etc/rc.d/ и /usr/local/etc/rc.d/, разбирает заголовки PROVIDE/REQUIRE/BEFORE/KEYWORD в скриптах, читает настройки rc.conf и определяет состояние запуска скриптов, после чего обрабатывает каждый скрипт как виртуальный legacy unit. В случае использования команды rcctl для управления подобными виртуальными unit-ами, операции транслируются в старый формат, например, выполнение "rcctl reload sshd" приведёт к запуску "/etc/rc.d/sshd reload".
Источник: https://www.opennet.ru/opennews/art.shtml?num=66245