[devel] libsystemd (Re: Разделение миров systemd и sysv)
Alexey Sheplyakov
asheplyakov на basealt.ru
Пт Мар 26 12:45:49 MSK 2021
Добрый день!
On 19.03.2021 12:42, Andrey Savchenko wrote:
> # lsof +c0 -n 2>/dev/null | grep libsystemd | mawk '{print $1}' | sort -u
> colord
> cups-browsed
> cupsd
> dbus-daemon
> rpcbind
> syslog-ng
> tor
> unbound
>
> Ну и зачем этим процессам libsystemd?
В основном для sd_notify
https://www.freedesktop.org/software/systemd/man/sd_notify.html
Пример: веб-приложению нужна БД. Причем наличие процесса mysqld необходимо,
но не достаточно. Нужно, чтобы в момент запуска приложения mysqld уже слушал
на своем сокете. init не может (и не должен) догадаться, в какой именно
момент mysqld сможет принимать запросы. А вот mysqld вполне может уведомить
init "я готов". И получив такое уведомление, init может смело запускать
сервисы, зависящие от mysqld. sd_notify как раз и позволяет сервису оповестить
init (причем не только о успешном старте).
> Однако, в рамках единого бинарного репозитория невозможно очистить
> все пакеты от этой избыточной зависимости,
Потому что она необходимая. Если Вам нравится в уме вычислять,
в каком порядке нужно (пере)запускать сервисы (или делать еще
какую-нибудь нудную работу, которую можно и нужно поручить
компьютеру) - пожалуйста, сколько угодно. Только не надо всех
насильно загонять в каменный век.
> Здесь Дима уже ответил: выгоды такого перехода не ясны, недостатки
> очевидны — потеря контроля над развитием ключевого компонента.
<sarcasm>
Ну остальные-то ключевые компоненты мы контролируем:
Linux (ядро), glibc, GCC, Mesa, GTK, Qt и далее со всеми остановками.
</sarcasm>
Подробная информация о списке рассылки Devel