Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

10.09.2026 10:12 (MSK)

Батист Даруссен (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".

  1. Главная ссылка к новости (https://www.osnews.com/story/1...)
  2. OpenNews: Выпуск системного менеджера systemd 261 и форка liberated-systemd 261
  3. OpenNews: Новые версии сервисного менеджера s6-rc и системы инициализации s6-linux-init
  4. OpenNews: Системный менеджер InitWare, форк systemd, портирован для OpenBSD
  5. OpenNews: Представлен многоплатформенный системный менеджер System XVI, частично совместимый с systemd
  6. OpenNews: Представлен Open Launchd, порт системного менеджера OS X для FreeBSD
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66245-rcd
Ключевые слова: rcd, freebsd, init
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, JoePeach (ok), 10:22, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем изобретать systemd, если systemd же есть?
     
     
  • 2.3, Аноним (3), 10:27, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    NIH синдром неизлечим, но скорее всего хотят по своему все делать, чтобы потом не проталкивать в systemd спорные решения, которые скорее всего отклоняет, ещё и, как принято в Линукс среде, крепким словом 😁
     
  • 2.7, Аноним (7), 10:38, 10/09/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.10, Аноним (10), 10:42, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    systemd пробит гвоздями к линуксу с его cgroups2 и прочими, а протащить эти фичи в ядро БСД просто так не получится.
     

  • 1.2, Аноним (3), 10:25, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вот и во freebsd будет свой systemd.
    Только зачем так усложнять синтаксис config файлов, автор Web разработкой по вечерам не увлекается ли?
     
     
  • 2.9, мяв (?), 10:40, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    потому что это видать не конфиг, а что-то интерпретируемо-обрабатываемое(обрабатывается как конфиг при старте и интерпретируется при ручных командах в сервис), типо как в openrc. но вопрос - зачем когда в опенрц это уже 100 лет в обед.
     

  • 1.4, Аноним (4), 10:31, 10/09/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.5, Аноним (5), 10:36, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Порочная практика, с винды слизана.
     
  • 1.6, Аноним (5), 10:37, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это не UNIX-way.
     
     
  • 2.11, онанист (?), 10:42, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ой вей
     
     
  • 3.15, Аноним (5), 10:54, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а зохен вей!
     

  • 1.8, мяв (?), 10:38, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    спрашивается, зачем, когда в openrc ферст-класс поддержка бсд'ей ?
     
  • 1.12, manchelsi (ok), 10:43, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Системный менеджер полностью обратно совместим с существующей системой последовательного запуска сервисов rc.d

    Когда-то и systemd так поступал с init.d, а теперь WARNING DEPRECATED

     

  • 1.13, Аноним10084 и 1008465039 (?), 10:46, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В Solaris говорят хороший инициализатор, интересно равняются ли на него?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать