Профиль: Аноним (вход | регистрация) не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 обязательно


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

    Это буквально то, что вынесет systemd на линуксах, как pipewire вынес пшшшаудио.

     
  • 2.10, Аноним (10), 10:42, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +8 +/
    systemd пробит гвоздями к линуксу с его cgroups2 и прочими, а протащить эти фичи в ядро БСД просто так не получится.
     
  • 2.21, опеншлёпивпродакшн (?), 11:24, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Если дать 100 людям задание приготовить суп и дать одинаковые ингредиенты, то они все приготовят одинаковый суп?
     
  • 2.34, pfg21 (ok), 12:28, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы вместо богопротивного виндовского фотмата ini был рассововерный json конечно же !!
     
     
  • 3.53, Гуманоид (?), 14:17, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    за конфиги на json есть отдельный котел в аду
     
  • 2.49, Аноним (49), 13:46, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    даже если бы они взяли системд , они бы его код все равно переписывали изза лицензии , под mit\bsd
     
  • 2.52, Аноним (52), 14:14, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем делать велосипед, если его уже сдалали много миллионов раз (не путать изготовление с изобретением)
     

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

  • 1.6, Аноним (6), 10:37, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это не UNIX-way.
     
     
  • 2.17, warlock66613 (ok), 11:03, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почему?
     
     
  • 3.24, xsignal (ok), 11:37, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нарушены принципы kiss, ортогональности и децентрализации, теперь в FreeBSD тащат комбайн, "менеджер всего".
     
     
  • 4.36, warlock66613 (ok), 12:41, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    KISS это вообще из другой оперы. Остальных нарушений не видно. Это не менеджер, это просто запускалка сервисов и она даже не PID 1.
     
     
  • 5.37, xsignal (ok), 12:44, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не менеджер, это просто запускалка

    Как позиционировался systemd когда-то и к чему это пришло...

     
     
  • 6.56, warlock66613 (ok), 14:34, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Про systemd это всегда было враньём.
     
  • 5.38, xsignal (ok), 12:46, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > KISS это вообще из другой оперы

    "Эрик Рэймонд в своей книге The Unix Philosophy in One Lesson резюмирует философию UNIX как широко используемый принцип KISS" (Вики)

     
     
  • 6.55, warlock66613 (ok), 14:34, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если так понимать KISS, как его понимает Эрик, то обсуждаемый проект ему максимально соответствует. Нам надо запускать и менеджить сервисы -> самый простой способ решить эту проблему -- написать программу, которая будет запускать и менеджить сервисы.
     

  • 1.8, мяв (?), 10:38, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    спрашивается, зачем, когда в openrc ферст-класс поддержка бсд'ей ?
     
     
  • 2.33, Аноним (33), 12:21, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чтоб было своё!
     
  • 2.43, Аноним (43), 13:12, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Обратная совместимость с прошлой системой, плюс гибкость под свои нужды, очевидно
     

  • 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 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    В Solaris говорят хороший инициализатор, интересно равняются ли на него?
     
     
  • 2.16, Аноним (16), 10:58, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лучше б не говорили.
     
     
  • 3.20, Аноним10084 и 1008465039 (?), 11:23, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше б не говорили.

    Почему?

     
  • 2.32, Аноним (33), 12:18, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    SMF имеет большую функциональносить, и связан с управлением ресурсами (проектами) и RBAC в Solaris'е, просто взять  и перенести во FreeBSD не получится.
    К тому же его конфигурационный файл пишется на XML, а во FreeBSD XML не любят.
     
  • 2.35, ф1231 (?), 12:39, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    и где сейчас ваш соларис?
     
     
  • 3.47, Аноним10084 и 1008465039 (?), 13:39, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > и где сейчас ваш соларис?

    Вдохновил современный инит в Линуксе

     
  • 2.40, yylloc (-), 12:50, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Он гвоздями прибит туда хлеще чем systemd
     
     
  • 3.46, Аноним10084 и 1008465039 (?), 13:39, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Он гвоздями прибит туда хлеще чем systemd

    Так я говорю равняться на него, а не копировать

     

  • 1.18, warlock66613 (ok), 11:05, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это наверное круто и правильно, но я не понял зачем это нужно.
     
     
  • 2.22, 1 (??), 11:31, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. Ускорить загрузку
    2. Выкинуть monitord
     
     
  • 3.25, xsignal (ok), 11:39, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1. Ускорить загрузку

    А что, приходится так часто перезагружаться, что это стало узким местом?

     
     
  • 4.41, Аноним (41), 12:57, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    сервер может долго запускаться, какую-нибудь террабайтную базу проверять перед тем как сокеты открыть
     
  • 4.44, Аноним (43), 13:13, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Фряха последние годы ориентируется на десктоп (см. laptop project), поэтому там это будет полезно
     
  • 2.23, 1 (??), 11:33, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    *monit же !
     

  • 1.19, Аноним (19), 11:14, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше б shepherd затащили… а, не, там же лицензия некошерная.
     
     
  • 2.39, Аноним (39), 12:49, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Просто наяривание на скорость загрузки. Впрочем, в Линуксе некоторые тоже этим страдают.
     

  • 1.26, Мемоним (?), 11:43, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > написания встроенных обработчиков на языке Lua

    Заменить баш-портянки на луа-портянки? Ну так себе идея.

     
  • 1.27, Аноним (27), 12:01, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А мне вот интересно, зачем для запуска nginx требуется sshd.
     
     
  • 2.29, Аноним (29), 12:14, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    корм для нейросети. боремся как можем
     
     
  • 3.30, Аноним (29), 12:16, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    я бы для статьи туда еще systemd прописал
     
     
  • 4.51, Аноним (51), 14:07, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не надо подводить под статью!
     

  • 1.31, Аноним (31), 12:18, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Да неужели? Авторы rcd сделали замену системд здорового человека и без тонны лишнего кода из системд. Такое можно только приветствовать, ещё и обратная совместимость есть.
     
     
  • 2.42, Аноним (41), 12:59, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тссс, сплюнь, может у бсдишников чтото толковое выйдет
     

  • 1.45, Аноним (45), 13:33, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну наконец-то rc система фри ужасна То что она должна делать - запускать и сле... большой текст свёрнут, показать
     
     
  • 2.50, Ivan_83 (ok), 14:06, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Следить за сервисами, в том смысле что поднимать упавшие - никогда не было задачей rc.d во фре.

    /usr/sbin/daemon - сделан и используется СПЕЦИАЛЬНО для приложений где автор не осилил работу в качестве сервиса.

    Если вам нужно динамическая реакция на VPN или ещё что то - это делается через devd: надо добавить свои скрипты на нужные вам события.


    > В настройке сервисов разброд и шатание - где-то для каждой настройки есть rc переменная, где-то для всего foobar_args, где-то foobar_flags, где-то foobar_params. Где-то поддерживается смена юзера, задание лимитов, смена fib, где-то нет.

    Так и сервисы сильно разные.
    Нужно каждый смотреть отдельно.

     

  • 1.48, Аноним (48), 13:43, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Нафиг вы все прицепились к systemd, он не ломает unixway, я хоть и старик мне вообще фиолетово. Куда хлеще симлинки /bin /sbin /lib, и все прожевали, ни один ни пискнул. Такой удар по ремонтопригодности. Если отъезжает /usr, рут вообще остаётся ни с чем, без инструментов.
     
     
  • 2.54, Аноним (54), 14:28, 10/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть мнение, что на абсолютном большинстве систем и /bin и /usr/bin живут(жили) на одном и том же разделе, так что эта ремонтопригодность была только у тех кто этим отдельно озаботился
     

  • 1.57, Аноним (57), 14:42, 10/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    делайте скорее супер легковестную замену systemd и заменяйте ей везде systemd
     

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



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

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