[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