[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