[devel] кому вообще нужен sysvinit

Alexey Sheplyakov asheplyakov на basealt.ru
Вт Дек 8 13:25:00 MSK 2020


On 08.12.2020 01:22, Alexey V. Vissarionov wrote:
> On 2020-12-07 19:18:45 +0400, Alexey Sheplyakov wrote:
> 
>  >>> $ ldd /proc/1/exe
>  >> [...]
>  >>> Возможно, вас это устраивает, но для других это blocker.
>  >> Для меня блокером оказалось уже то, что оно умеет
>  >> *сегфолтиться*.
>  > Ядро (Linux) умеет падать и виснуть гораздо лучше.
> 
> Умеет. Но там проблемный кусок кода можно отключить.

Ну отключил я CONFIG_ACPI, и что дальше? "Если у них нет хлеба, пусть едят пирожные"?

(А для начала вообще надо найти, что отключить)


 А как ты
> отключишь, например, чудесную особенность systemd, когда все
> процессы уже running, а target все еще никак не reached?

Если NNN.target Requires=foobar.socket, то по определению reached он
будет после того, как на сокете кто-то начнет слушать. И это хорошо.
Потому что можно описать зависимости вида "apache нужно стартовать тогда,
когда mysql уже слушает". Или "ceph нужно стартовать после того, как появились
такие-то блочные устройства". Кстати, как там дела у sysv с такого рода
зависимостями?

Если NNN.target Requires=xyz.service, у которого Type=notify, и этот самый
xyz завтыкал (не уведомил systemd в положенный таймаут), то тоже никак.
И это тоже хорошо. Что толку от наличия процесса, если он затупил (возможно
не по своей вине, а из-за недостатка ресурсов)?

>  > Поэтому для устойчивости системы в целом нет разницы, кто там
>  > рулевой в userspace - systemd, runit, или GNU shepherd какой.
> 
> Разница существенная, и измеряется она в рублях: промышленная
> эксплуатация ОС с systemd обходится в среднем на 10...15% дороже,
> чем аналогичной ОС с sysVinit.

Наблюдаю строго обратную ситуацию. Requires=такой-то.socket, и тривиальный патч
с sd_notify - и больше не надо держать эникейщиков, которые смотрели в netstat
и перезапускали сервис. Видимо, они и пишут гневные тексты о том, что systemd не нужен.




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