[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd



Alexey Shrub -> debian-russian@lists.debian.org  @ Fri, 13 Nov 2015 22:54:48 +0300:

 >> Это теория или практика?  Питание никогда не пропадало?  OOM killer
 >> никогда не срабатывал?

 AS> всякое бывает, но это не значит что надо пихать кучу логики в инит-скрипт,
 AS> либо операционная система должна отслеживать ресурсы (быть guard'ом), либо сам
 AS> демон при запуске проверять не осталось ли от него мусора от прошлой
 AS> клинической смерти, но точно не стоит инит скрипту знать о том какие ресурсы
 AS> нужны демону и какие из них надо почистить если что

Ну, вообще-то инит-скрипт, как процедура запуска демона, является частью
его инфраструктуры.  Чего бы ему не знать?

 >> Это можно сделать зависимостями, я об этом писал.  А можно написать на
 >> ассемблере.  И то, и другое - сложнее и более чревато ошибками, чем
 >> написать процедуру на sh.

 AS> Невозможно поверить в то, что конфигурация конфигов более чревата
 AS> ошибками чем скрипт на шелле.

И очень зря.  Потому как такое сплошь и рядом.

То есть пока задача по сути одна и та же, ошибки равновероятны.  А при
замене процедуры запуска на декларативный граф зависимостей сложность
задачи может нехило возрасти и перестать влезать в голову так, чтобы
охватывать картину одним взглядом.

Может и не возрасти, конечно.

 AS> Кроме того, конфигурация на виду, а скрипт инициализации в подвохе
 AS> будут подозревать в последнюю очередь - придётся поискать,
 AS> потратить время чтобы понять почему работает именно так.

Гм.  Что одно - текстовый файл для чтения глазами, что другое, вроде бы,
пока тоже...

Нет, конечно, если стереотип "шелл - это ужас-ужас" вбит глубже
сознания, тогда, конечно, да.  Увидев shebang, отключаем мозг и хоть
убей, не можем понять написанное.  А если не вбит, то внезапно
выясняется, что сложность указания всего, что нужно, в конфиге, и
сложность написания на шелле процедуры, которая делает ровно то же
самое, оказывается примерно одинаковой.

А если снизить планку требований до "почти всего, что нужно", то шелл
может оказаться и компактнее.  На нем действительно не шибко удобно
отлавливать всякие тонкие краевые условия.  В ситуациях, когда мне такое
надо, я в случае дебиана беру perl - он тоже в base system, но у него с
исключениями лучше.

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

Хрень-то не чисто функциональная, а с побочными эффектами, с
воспроизводимостью в условиях параллелизации у нее, мягко говоря, не все
хорошо.


Reply to: