>> SysV init это просто запускался скриптов, если у вас были кривые скрипты
>> то причём тут SysV init?
> При том, что он поощряет написание этих кривых скриптов. Как? Например, вот
> так:
> 1. Отсутствие стандарта метаинформации (ограничения, зависимости, последовательность
> запуска и т.д.) о сервисе. Из-за этого придумали костыль - хитрые
> комментарии в начале скрипта, так называемый sysvinit service header.Сервисные скрипты для sysv сильно разнились от дистрибутива к дистрибутиву. Закономерное следствие его гибкости. Так вполне логично, что стандарт определялся на уровне дистрибутива. Вот в Debian был стандарт. Это и был тот самый LSB header, который Вы почему-то называете "sysvinit service header" и "костылём".
> Которые мало кто нормально пишет. Да и в которых почти ничего нет. PID/GID там не выставишь, например.
Какой кошмар. В header-ах, которые определяют *порядок загрузки*, нельзя выставить GID. Правда, UID/GID можно дальше спокойно выставить в start-stop-daemon, но кому это интересно, в самом деле. Про выставление PID вообще молчу.
> 2. Отсутствие системного алгоритма запуска
> хотя он известен - выставили ограничения/параметры,
> запустили, определили успешность запуска, запомнили pid и т.д. Но он не
> реализован в рамках sysvinit, есть примитивный exec процесса и всё.
Ну так это не так.
> Поэтому каждый в меру своих умений каждый раз заново изобретает свою портянку
> с этим алгоритмом на макроязыке.
Ну так это тоже не так.
> 3. Отсутствие domain specific language - то есть языка, специально предназначенного для
> описания сервисов и который сводит к минимуму кол-во ошибок/проблем просто тем
> фактом, что его грамматика их не позволяет сделать.
А вот это так. Ну, как я и говорил тут давеча: systemd создал DSL, который снизил порог вхождения новичкам, которым тьюринг-полный язык оказался слишком сложен, путём покрытия типовых сценариев запуска. Полезная вещь для новичков. Нужны ли нам такие мейнтейнеры -- это вопрос очень интересный и спорный. Я бы сказал, что есть в мире те, кому это на руку.