Выбор init-системы для десктопного LFS: systemd, OpenRC, runit или dinit?
-
Всем привет!
Собираю свой дистрибутив на базе LFS.
Система рассчитана на повседневный десктоп для ПК средних характеристик и будет полностью оптимизирована (включая общую производительность, игры и проприетарные драйверы NVIDIA). Ультра-минимализм и экономия каждого байта ОЗУ не требуется, но и лишний оверинжиниринг не нужен.
Встал вопрос с выбором инит-системы и сервисного менеджера.
В LFS-буке основные варианты — systemd и SysVinit, но смотрю и на альтернативы (OpenRC, runit, dinit, s6).
Посоветуйте, что лучше выбрать под такие задачи? -
Runit точно нет, тк проект давно умер, поддерживается только у Void в актуальном состоянии. СИ жрёт чрезвычайно мало, но вряд ли устроит в работе. Поэтому SysV, Dinit или S6 скорее, точно не systemd. Не знаю, что там у Dinit под капотом и с технической точки зрения, мне, как простому юзеру, приглянулась простотой управления служб а-ля Runit, только она актуальна.
-
Я посоветовал бы SystemD.
1) Практически весь современный десктопный стек хорошо интегрирован с systemd, поэтому большинство компонентов будет работать из коробки. С другими init-системами иногда приходится вручную настраивать интеграцию.
2) systemd предоставляет logind и полноценную работу с cgroups, что важно для управления пользовательскими сессиями, питанием, ресурсами и т. д.
3) Большое количество готовых сервисов, unit-файлов и документации рассчитано именно на systemd, поэтому сопровождение будет проще.
4) В плане диагностики journalctl, systemctl status, systemd-analyze и другие инструменты предоставляют удобные возможности для диагностики загрузки и сервисов.
5) Удобное управление сервисами: зависимости, порядок запуска, перезапуск после падения, лимиты ресурсов, sandboxing и т. д. задаются в одном месте, что гораздо удобнее классических init-скриптов.