metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-10-07 04:35 pm

Ненависть к systemd как психическая эпидемия

Напомните мне или дайте ссылку - я уже спрашивал, чего все на systemd так ополчились?
Выглядит, как средневековая эпидемия одержимости дьяволом, все псят, чего псят - непонятно.
Ну, не считая вот этого: http://metaclass.livejournal.com/889197.html?thread=20959341#t20959341 тут, несмотря на теорию заговора, хоть какое-то обоснование имеется.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 04:24 pm (UTC)(link)
Да он, собственно, на десктопе у тех, кому нужен.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 04:26 pm (UTC)(link)
Видите ли, bash далеко не так прост, как кажется. В bash'е, скажем, есть ленивые вычисления - конвееры, есть элементы функциональщины.

Поэтому, если его менять, то менять нужно на что-то явно не масштаба lua.
develop7: (dero)

[personal profile] develop7 2014-10-08 04:54 pm (UTC)(link)
даа? а как вы поступаете, когда в инитскрипте из дистра тупо не предусмотрена ручка, которую надо подкрутить (i.e. CPUAffinity, ionice, да даже банально переменную окружения в нужное значение выставить)?

[identity profile] dgu92sc.livejournal.com 2014-10-08 05:05 pm (UTC)(link)
метакласс, почему ты всех считаешь психами? наверное у тебя зеркальный синдром. ты проецируешь свои отклонения на окружающий мир.

[identity profile] dgu92sc.livejournal.com 2014-10-08 05:07 pm (UTC)(link)
березоффский, зачем ты цитируешь букварь?

[identity profile] tzirechnoy.livejournal.com 2014-10-08 07:04 pm (UTC)(link)
Мы либо как-то выкручиваемся, либо правим initscript. Впрочем, при применении верхней головы -- выкручиваемся обычно успешно. А как Вы поступаете, когда ручка не предусмотрена в systemd?

Кстати, переменные окружэния в /etc/default/servicename можно выставить любые, и написать в нём start-stop-daemon () { /sbin/start-stop-daemon --iosched ... "$@" } проблем не составляет.

[identity profile] tzirechnoy.livejournal.com 2014-10-08 07:16 pm (UTC)(link)
В lua как раз всё замечательно с элементами функцыональщины. functions -- first-class, closure есть, tail call optimisation есть.

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

[identity profile] tzirechnoy.livejournal.com 2014-10-08 07:17 pm (UTC)(link)
Но ничего, во что были бы вменяемо интэгрированы пайпы -- всё равно нет.
develop7: (dero)

[personal profile] develop7 2014-10-08 09:01 pm (UTC)(link)
правим initscript
и молимся, чтобы maintainer пакета не поправил скрипт и не пришлось бы решать конфликты. been there.
А как Вы поступаете, когда ручка не предусмотрена в systemd?
-1) в настоящее время это скорее «если» — ручек, если вы ходили по ссылкам, там более чем дофига, а некоторые далеко не сразу понятно, как реализовывать батниками
0) это какая интересно?
1) пишем скрипт и перекрываем у юнита ExecStart
написать в нём start-stop-daemon () { /sbin/start-stop-daemon --iosched ... "$@" } проблем не составляет
грязный хак. хорошо хоть это только в одном месте можно сделать. если вообще можно: разве /etc/default/servicename есть у всех сервисов?
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:47 pm (UTC)(link)
Ну, стало быть, ничего на место баша и не подходит. Просто с пистоном-луа и прочими сями получается пролёт на типичной задаче - конвеере из 3-х программ, гоняющем данные общим объёмом гигабайт в 40.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:51 pm (UTC)(link)
Нужны не столько пайпы, сколько ленивые вычисления с потоками, а, может быть, и более серьёзными структурами.

У баша же задача склеивать разные кубики в единую систему => если между кубиками идут потоки данных, аналог bashа не должен их накапливать, он должен их легко, почти без обработки, передавать дальше. Это не всегда возможно и с ленивыми вычислениями, но на одних энергичных это вообще не получится.
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-08 10:58 pm (UTC)(link)
Да, ещё желательно иметь всё-таки типизацию, т.к. без типизации особо ничего не поменяется:

1. Замыкания в bash'е очень активно используются лишь в find -exec ...

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

3. Передача функций - см. find: интересна, но не сильно.

4. Опыт PowerShell показывает, что объектно-ориентированность в скриптах имеет отрицательную ценность.

Но с типизацией летит к чертям grep, sed и прочие мелкие утилиты.

[identity profile] avnik.livejournal.com 2014-10-09 12:44 am (UTC)(link)
зато он нахуй взрывается, если его попытаться настроить

[identity profile] avnik.livejournal.com 2014-10-09 12:46 am (UTC)(link)
ну если у мантейнера хватило ума скопипастить из примера -- то оно пытается читать /etc/defaults/$name если он есть

[identity profile] avnik.livejournal.com 2014-10-09 12:48 am (UTC)(link)
чтоп вам пришлось по работе саппортить 2-3 поколение 3-4 основных дистров.
Потому что стартап, и работозвятель хочет чтобы было вчера.

[identity profile] avnik.livejournal.com 2014-10-09 12:50 am (UTC)(link)
ну кстати вторую точку зрения я даже поддерживаю.
Потому как приходилось менять пару раз.

[identity profile] avnik.livejournal.com 2014-10-09 12:57 am (UTC)(link)
а много ли вы кода на луа написали?

[identity profile] avnik.livejournal.com 2014-10-09 01:00 am (UTC)(link)
и даже хвостовая рекурсия
ext_646638: (Default)

[identity profile] rdia.livejournal.com 2014-10-09 01:43 am (UTC)(link)
Это вещь не столь важная скриптовом языке (сверхвысокого уровня), а ленивые вычисления в конвеерах позволяют делать tee, запускать sed/wc/grep на многогигабайтных файлах (и т.п.).

Поэтому замена bash'а на язык без ленивых вычислений обломится очевидным образом.

[identity profile] norguhtar.livejournal.com 2014-10-09 02:35 am (UTC)(link)

Мэйнтэйнеры апстрима? Так они и так не пишут, чего им радоваться.

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

[identity profile] norguhtar.livejournal.com 2014-10-09 02:36 am (UTC)(link)
Кто именно? initrd?

[identity profile] norguhtar.livejournal.com 2014-10-09 02:39 am (UTC)(link)
Да вы смотрю сама доброта ;)

[identity profile] norguhtar.livejournal.com 2014-10-09 03:37 am (UTC)(link)

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

Угу. Люди к примеру в openfirmware используют forth. В целом идея конечно здравая, но смысл в чем? Вот sysvinit частично тоже бинарный и ничего.

[identity profile] avnik.livejournal.com 2014-10-09 04:36 am (UTC)(link)
пульс же.

[identity profile] avnik.livejournal.com 2014-10-09 04:39 am (UTC)(link)
ну одним пакетом, который ставится на все убунты начиная с precise, и дебианы от squeeze до sid я обошелся. (привет разнообразию инитов, ага -- sysvinit+upstart+systemd из коробки)
С центосами уже хуже -- один исходный ==> три бинарных на выходе

Page 4 of 5