[devel] libsystemd (Re: Разделение миров systemd и sysv)

Alexey V. Vissarionov gremlin на altlinux.org
Ср Мар 31 13:39:41 MSK 2021


On 2021-03-26 13:45:49 +0400, Alexey Sheplyakov 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

Без него можно обойтись? Можно. Значит, вырезать этот рак нещадно.

 > Пример: веб-приложению нужна БД. Причем наличие процесса mysqld
 > необходимо, но не достаточно. Нужно, чтобы в момент запуска
 > приложения mysqld уже слушал на своем сокете.

Классическая ошибка человека, который никогда не администрировал
критичные сервисы (у которых ущерб от простоя измеряется сотнями
килорублей в минуту)...

 > init не может (и не должен) догадаться, в какой именно момент
 > mysqld сможет принимать запросы. А вот mysqld вполне может
 > уведомить init "я готов".

А теперь придумай способ сделать то же самое в ситуации, когда БД
и уеб-сервис работают на разных компутерах. Придумал? Теперь думай,
как сделать это решение универсальным - для всех видов БД (ладно,
ограничимся Mongo + MySQL + PostgreSQL). Не получается? Да, я знаю,
что эта задача общего решения не имеет. Более того, это знают даже
быдлокодеры, которые клепают уеб-сервисы. А разработчики ОС, как
выясняется, об этом даже никогда не задумывались.

 > И получив такое уведомление, init может смело запускать
 > сервисы, зависящие от mysqld. sd_notify как раз и позволяет
 > сервису оповестить init (причем не только о успешном старте).

В том числе на другом сервере? Если да - как? Если нет - нахрена
оно такое нужно?

 >> Однако, в рамках единого бинарного репозитория невозможно
 >> очистить все пакеты от этой избыточной зависимости,
 > Потому что она необходимая.

Она именно избыточная.

 > Если Вам нравится в уме вычислять, в каком порядке нужно
 > (пере)запускать сервисы (или делать еще какую-нибудь нудную
 > работу, которую можно и нужно поручить компьютеру) -
 > пожалуйста, сколько угодно. Только не надо всех насильно
 > загонять в каменный век.

А что надо? Сломать всем ноги и раздать современные костыли?
Что-то много таких благодетелей развелось...

Кто как, а лично я за попытку сломать мне ноги просто оторву
голову. Особенно с учетом того, что авторы подобных идей, как
правило, ей все равно не пользуются.


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


Подробная информация о списке рассылки Devel