Он выпилил systemd из Debian ради OpenRC. Загрузка не пережила команду
Дэниел Кордова одной строкой apt поменял systemd на OpenRC — и ноутбук перестал загружаться. Он восстановил систему в режиме спасения; звук и индикатор батареи так и остались сломаны. Самый тихий эксперт треда задал главный вопрос: а кто теперь перезапустит упавший сервис?
Спусковым крючком стала проверка возраста: когда такой закон «варился» и systemd добавил для него поле, Кордова решил, что init-система вышла за рамки своей задачи. Его команда замены пыталась выпилить systemd и поставить OpenRC одной цепочкой — и один читатель заметил: если удаление сорвётся на полпути, OpenRC так и не установится.
Второй голос копнул глубже: OpenRC возвращает вам как вашу проблему порядок зависимостей, надзор за падениями и учёт ресурсов через cgroup. Вот это, а не установка, и есть настоящая работа.
Одна строка apt — и ноутбук, который не грузится
Пост Дэниела Кордовы «Замена systemd на OpenRC в Debian» начинается с дискомфорта, а не с бенчмарка. Его «первый настоящий толчок» случился, когда готовился закон о проверке возраста и systemd добавил поле в его поддержку: init-системе, по его ощущению, там делать нечего, ведь она и так уже вобрала в себя загрузчик, схему разбивки дисков, управление пользователями и инсталлятор. Так что замену он выполнил одной цепочкой команд: sudo apt purge --allow-remove-essential systemd && sudo apt install openrc sysvinit-core.
Машина не поднялась. По его словам, OpenRC либо удалился во время purge, либо так и не установился; он восстановился через режим спасения, переподключил WiFi и поставил его вручную. После этого перестали работать индикатор батареи и звук. Юнит systemd для remoteproc, который он переделал в shell-скрипт в /etc/init.d/, он сам признал заплаткой: «Нужно превратить это в нормальный скрипт OpenRC». Его вердикт осторожно положительный, «Пока OpenRC справляется», и обёрнут в призыв к «юниксовой свободе использовать что хочешь».
Тред: установка была лёгкой частью
Самый полезный ответ в треде проигнорировал идеологию и прочитал команду. && означает, что вторая половина запустится, только если первая полностью отработала:
«Не вижу, чтобы openrc ставился до удаления systemd… Моё подозрение: удаление systemd сорвалось на полпути.» — читатель, проследивший сбой до цепочки команд apt
Второй голос назвал, во что OpenRC обходится на самом деле, и это не установка:
«когда сервис падает — кто его перезапустит и что гарантирует, что он поднялся только после того, как его зависимости реально готовы… Вот этот порядок зависимостей и учёт ресурсов через cgroup и есть настоящая работа, и OpenRC возвращает её вам.» — комментатор сосредоточился на переделанном надзоре за remoteproc
Затем вспыхнул старый спор. Несколько человек настаивали, что эксперимент путает две вещи под одним именем:
«Здесь делают ошибку, путая systemd как менеджер сервисов и systemd как проект… systemd не встраивал проверку возраста. Обсуждалось лишь простое поле, позволяющее пользователю указать дату рождения.» — сисадмин отделил менеджер сервисов от зонтичного проекта
Дальше тред раскололся начисто. Тип в духе бывшего основателя и приверженец Gentoo приветствовали любое давление на systemd — «systemd отчаянно нужна конкуренция… им к тому же неуклюже пользоваться», — а раскаявшийся скептик прямо поставил ему в заслугу то, что Linux стал жизнеспособным: «Именно systemd превращает Linux в жизнеспособную современную ОС. Нужно что-то, что свяжет все части ОС единым API». И всплывала повторяющаяся практическая ремарка: если хочешь Debian без systemd, Devuan ровно это и поставляет, без всякой цепочки purge. Принцип KISS, на который ссылался Кордова, подсказывал тред, не делает проще: он лишь перекладывает надзор, порядок запуска и учёт ресурсов с init-системы на тебя.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Блогер: Microsoft нужна Windows Lite за 49 долларов. Разработчики в треде против
Идея Филипа Бохуна: урезанная Windows без телеметрии, рекламы, ИИ и .NET — только Win32 и лёгкая оболочка, продаётся один раз за 49 долларов. Логика в том, что Microsoft теряет «строителей», которые делают софт. Разработчики в треде быстро поймали противоречие.