The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Разработчики systemd представили Journal, замену системе syslog, opennews (ok), 19-Ноя-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


25. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от emg81 (ok), 19-Ноя-11, 01:16 
>>но, вспоминая systemd...
> А что systemd? У меня в новой opensuse он **очень** быстро грузит
> систему, например.

везёт.
у меня раньше стояла opensuse 11.4 некоторое время. время с запуска в GRUB до появления KDE-шного окошка незначительно отличалось от того, что было в Gentoo c openRC. 1-2 сек буквально, в пределах погрешности.

сейчас абсолютно такая же дефолтная openSUSE (что в тот, что в этот раз добавил в автозагрузку только pppoe), только уже с systemd грузит систему на 7 сек. дольше, чем рядом стоящая Gentoo.

внимание, вопрос: нафига такие хороводы?
ну, может, там что-то ещё "подоптимизировать" надо, включить мозг тут советуют.
только почему-то Gentoo с openRC с кучей сервисов в автозагрузке почему-то грузится быстрее. измерял только что.

gentoo с момента старта из GRUB до KDE-шного окошка по центру грузит за 22 секунды, openSUSE 12.1 дефолтная - за 29 секунд.
погрешность измерений +-1 секунда.

Ответить | Правка | Наверх | Cообщить модератору

41. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 01:55 
/me пожимает плечами
УМВР. Правда.
Ответить | Правка | Наверх | Cообщить модератору

51. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от emg81 (ok), 19-Ноя-11, 02:33 
так и у меня ВР. сейчас пишу из openSUSE, где этот самый systemd

только как пользователь, от хвалёной systemd проку не вижу, когда это новая супероптимизированная наноразработка проигрывает криво настроенной моими руками openRC (я ман по опенрц не отворял и мигрэйшн гайд не дочитал. сделал как-то, всё работает. а правильно - неправильно, мир с ней - ошибок не сыпет, да и ладно) - то, логично, возникает вопрос, а зачем оно нужно?

вот ещё не знаю, из-за systemd или нет, но при загрузке ОС прогресс-бара нету :(

Ответить | Правка | Наверх | Cообщить модератору

89. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 08:17 
> только как пользователь, от хвалёной systemd проку не вижу, когда это новая
> супероптимизированная наноразработка проигрывает криво настроенной моими руками openRC

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

Ответить | Правка | Наверх | Cообщить модератору

135. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от emg81 (ok), 19-Ноя-11, 12:39 
> А ты точно уверен, что разные дистрибутивы у тебя запускают один и
> тот же набор сервисов?
> Или ты думаешь, что systemd это единственная разница между генту и зюзей?

конечно, нет.
я потому и написал, что суся дефолтная, лишь pppoe добавил. а в генте куча всего накопленного автогрузится + всякие нужные модули для виртуалбоксов и т.п.

Ответить | Правка | Наверх | Cообщить модератору

189. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 16:28 
> я потому и написал, что суся дефолтная, лишь pppoe добавил. а в
> генте куча всего накопленного автогрузится + всякие нужные модули для виртуалбоксов
> и т.п.

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

В идеале так:
Делается тестовый линукс. Не гента и не суся, а что-то самопальное типа LFS. Бутявится по очереди systemd и чем там еще. Результаты сравниваются.

Ответить | Правка | Наверх | Cообщить модератору

231. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от lucentcode (ok), 19-Ноя-11, 19:42 
А зачем тестовый? Берёте нормальный Arch и по очереди устанавливаете системы инициализации, сравниваете и получаете результат.
поминая systemd...
А что systemd? У меня в новой opensuse он **очень** быстро грузит систему, например.
Ответить | Правка | Наверх | Cообщить модератору

330. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от Аноним (-), 21-Ноя-11, 04:57 
> А зачем тестовый? Берёте нормальный Arch и по очереди устанавливаете системы
> инициализации,

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

> сравниваете и получаете результат.

Сравнивать с умом надо. А в арче что, во всех пакетах для всех сервисов прописаны несколько вариантов старта? Как то скриптики - для init, конфиги - для systemd, ну и так далее?

> поминая systemd...А что systemd? У меня в новой opensuse он **очень** быстро грузит
> систему, например.

Да собственно я не вижу чему там так уж тормозить. Скорее, претензии сводятся к тому что опять мистер Поттеринг выкатил свой велосипед с квадратными колесами под который надо ломом и лопатами дорогу "ровнять". В том плане что сразу вылезла куча проблем которые до этого почему-то никому особо не мешали. Что для творений Поттеринга вообще характерно.

Ответить | Правка | Наверх | Cообщить модератору

379. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Yuriy (??), 22-Ноя-11, 14:11 
На глаза хамелеона смотри
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

103. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 08:45 
> /me пожимает плечами
> УМВР. Правда.

а что такое УМВР?

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

153. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 13:16 
Луркай. У Меня Все Работает. Акроним.
Ответить | Правка | Наверх | Cообщить модератору

44. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Buy (??), 19-Ноя-11, 02:00 
> gentoo с момента старта из GRUB до KDE-шного окошка по центру грузит за 22 секунды, openSUSE 12.1 дефолтная - за 29 секунд.

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

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

47. "Разработчики systemd представили Journal, замену системе sys..."  +4 +/
Сообщение от emg81 (ok), 19-Ноя-11, 02:13 
я Gentoo вообще перезагружаю редко и openRC не оптимизировал совсем.
ну, разве что после установки выставил в конфиге параллельную загрузку сервисов. и всё. лично я никаких сил не тратил особых.

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

у меня случился stack overflow после неоднократного прочтения и перепрочтения этой фразы в попытках её понять.

> Хотя, если нравиться пусть пишут.

конечно. лишь бы насильно не пихали во все дистрибутивы.

одна из причин, почему как познакомился с Linux вообще, сразу ушёл на "конструкторы" (Arch / Gentoo) - возможность выбирать.
а в таких, как Ubuntu и т.п. понапихают всего новомодного, в итоге просто пользоваться системой неудобно. зато найдутся ярые фанаты нововведений, всех захамят консерваторами / нежелающими развиваться и т.д.

Ответить | Правка | Наверх | Cообщить модератору

61. "Разработчики systemd представили Journal, замену системе sys..."  +3 +/
Сообщение от Клыкастый (ok), 19-Ноя-11, 03:47 
а то ещё есть которых зверскими побоями в детском саду заставляли переводить на бумаге C в машинный код. ети при слове "компилятор" начинают биться в истерике, нанося дополнительные повреждения верней части туловища...
Ответить | Правка | Наверх | Cообщить модератору

115. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 09:59 
> а то ещё есть которых зверскими побоями в детском саду заставляли переводить
> на бумаге C в машинный код. ети при слове "компилятор" начинают
> биться в истерике, нанося дополнительные повреждения верней части туловища...

То, что происходит при переходе на поделки поттеринга - прямая конвертация бинарников из одной архитектуры в другую с последующим дизассемблированием и переводом этого дела на Си.

Ответить | Правка | Наверх | Cообщить модератору

411. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от Аноним (-), 23-Ноя-11, 15:04 
Откуда такие упоротые лезут? Вы хоть раз в жизни пробовали вообще системам типа systemd конфиг накатать для своего сервиса? Ничего что это в 10 раз проще и быстрее чем эквивалентные костыли на шелскриптах изображать?
Ответить | Правка | Наверх | Cообщить модератору

192. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 19-Ноя-11, 16:33 
> Не важно что там быстрее грузится, важна незначительная разница. Хотя, если
> нравиться пусть пишут.

Не скажу за systemd но с upstart конфиг на 5-7 строк делает больше и умнее нежели традиционная портянка на 2 страницы. Что определенно добавляет радости когда надо прописать пяток своих сервисов для их автостарта.

Пока вы на шеллскриптах изобразите авторестарт сервиса (на случай если ему стало плохо) с лимитированием числа перезапусков в некий интервал (чтобы не положить хост в случае если сервису стало совсем уж плохо), возможностью поставить недефолтный приоритет и так далее - вы будете геморроиться довольно долго, а в результате у вас получится простынка на 2 страницы. Вместо 5 строчек в конфиг-файлике более вменяемого запускача. Которые кстати не отменяют запуск шеллскриптов если это стало нужно, прсото в 99% случаев можно и без них обойтись, заменив 2 страницы г-нокода на 5-7 строк конфига, очевидных как топор.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

195. "Разработчики systemd представили Journal, замену системе sys..."  +2 +/
Сообщение от Michael Shigorinemail (ok), 19-Ноя-11, 16:37 
> Пока вы на шеллскриптах изобразите авторестарт сервиса (на случай если ему стало
> плохо) с лимитированием числа перезапусков в некий интервал (чтобы не положить
> хост в случае если сервису стало совсем уж плохо), возможностью поставить
> недефолтный приоритет и так далее - вы будете геморроиться довольно долго,
> а в результате у вас получится простынка на 2 страницы.

Для этого давным-давно есть monit. :)


check process crond with pidfile /var/run/crond.pid
        group daemons
        group cron
        start program = "/sbin/service crond start"
        stop  program = "/sbin/service crond stop"
        if 5 restarts with 5 cycles then timeout
        depend cron_bin
        depend cron_spool

check file cron_bin with path /usr/sbin/crond
        group cron
        include /etc/monitrc.d/templates/rootbin

check directory cron_spool with path /var/spool/cron
        group cron
        if failed permission 3730 then unmonitor
        if failed uid root        then unmonitor
        if failed gid crontab     then unmonitor

Это штатный /etc/monitrc.d/EXAMPLES/crond в используемом дистрибутиве -- а можно и смотрелку за памятью, и реакцию на подходящее к концу свободное место на разделе прикрутить.
Ответить | Правка | Наверх | Cообщить модератору

240. "Разработчики systemd представили Journal, замену системе sys..."  –3 +/
Сообщение от seidu (?), 19-Ноя-11, 21:03 
Если вам приходится использовать плюшки типа monit значит система у вас настроена неправильно, либо вы не можете ее настроить но упорно используете линукс. Monit это костыль. Хотя в общем идеология линукса в отличие от именно такая, что ты сам можешь придумать себе пачку граблей, а потом расставлять флажки по периметру чтоб не наступать на них.
Ответить | Правка | Наверх | Cообщить модератору

310. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от myhand (?), 20-Ноя-11, 13:10 
> Если вам приходится использовать плюшки типа monit значит система у вас настроена неправильно

Да Вы телепат.  Я использую monit.  Пожалуйста, перечислите
по пунктам что в системе у меня "настроено неправильно".

> в общем идеология линукса в отличие от

От чего?

Ответить | Правка | Наверх | Cообщить модератору

318. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Michael Shigorinemail (ok), 20-Ноя-11, 20:18 
> Если вам приходится использовать плюшки типа monit значит система у вас настроена
> неправильно, либо вы не можете ее настроить но упорно используете линукс.
> Monit это костыль.

То-то там патчи то для соляриса, то для *bsd приносят.  Из самых разных мест -- Orange сходу вспомнился.

Вообще-то если бы Ваш вывод был верен, то за раз настроенной системой никогда бы не требовалось наблюдение и человека тоже.  Это бывает, но такие системы скорее напоминают "замкнутые" и их применимость заведомо сильно ограничена.

А в остальном monit вполне способен подсказать, когда закончилось место на диске, или вовремя успеть уложить потенциально ненамеренно DoS'ящий хост сервис (сейчас менее актуально, а вот когда один Duron 800/512M тащил вагон всего -- очень даже было), чтоб хоть получилось добраться и принять меры, а не гадать на кофейной гуще и звонить хостеру дёрнуть питание...

Ещё к нему в пару очень хорош collectd.  Хотя Вы и его костылём назовёте, наверное -- денно и нощно просиживая глаза об надцать top'ов.

Хотя вообще-то компьютеры -- тоже костыли, конечно.  Мир несовершенен, c'est la vie.

2 develop7: можете пальчиком указать, в каком месте monitrc есть Turing complete?

Ответить | Правка | К родителю #240 | Наверх | Cообщить модератору

422. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 23-Ноя-11, 20:32 
> его костылём назовёте, наверное -- денно и нощно просиживая глаза об
> надцать top'ов.

По логике вещей надо вас за него обругать. Как тут ругаются на поттеринговский журнал. А то как это, он умеет хранить данные в бинарной базе данных rrdtool-а, например?! И предлагать унифицированный интерфейс для типовых операций сбора статистики?! Вы чо, опухли?! Правильный вариант - только и исключительно парсинг многочисленных логов всех мастей шеллскриптами. А collectd - ересь и не юниксвей!!!111.

Ответить | Правка | Наверх | Cообщить модератору

281. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от develop7 (ok), 20-Ноя-11, 01:36 
> Для этого давным-давно есть monit. :)

полный по тьюрингу конфиг vs ini-style конфиг + инитскрипт на C. Я за последнее. Оно а) быстрее и б) проще. Извините.

Ответить | Правка | К родителю #195 | Наверх | Cообщить модератору

311. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от myhand (?), 20-Ноя-11, 13:28 
> полный по тьюрингу конфиг vs ini-style конфиг + инитскрипт на C. Я
> за последнее. Оно а) быстрее и б) проще. Извините.

Ага.  А еще оно: в) бесполезнее.  Или я что-то пропустил и у systemd умеет что-то помимо "я смотрю на процесс с данным pid и перезапущу его если оно помрет"?

Он умеет ходить на порт сервиса по нужному протоколу?  Провести произвольную
серию тестов и выполнить в зависимости от - определенное действие (рестарт, к примеру)?

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

Так что как замена monit - поделие этого клоуна (см. http://ftp.halifax.rwth-aachen.de/CCC/27C3/mp4-h264-512x288-...) и рядом не лежало...  Хорошие ребята - делают полезный и качественный продукт.  Кроссплатформенный.  Без истерик "я весь зашибись и вы получили это бесплатно".

Ответить | Правка | Наверх | Cообщить модератору

410. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 23-Ноя-11, 15:02 
> Он умеет ходить на порт сервиса по нужному протоколу?  Провести произвольную
> серию тестов и выполнить в зависимости от - определенное действие (рестарт, к
> примеру)?

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

Ответить | Правка | Наверх | Cообщить модератору

441. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 25-Ноя-11, 14:16 
> В идеале система запуска сервисов должна сие уметь, хотя-бы в простом виде. Как то сконектиться на порт, посмотреть что отвечают.

Что именно "сие" - полный список озвучьте, пожалуйста?  Накой черт нужен "простой вид", когда нужно либо _все_ - либо _ничего_.  Полмониторинга - хуже чем его отсутствие.

> Ну или внешний чекер (програма/скрипт/плагин) для сильно навернутых тестов.

Ну да.  Просто - нормальная система мониторинга.  Пусть каждый занимается своим делом - init стартует все в заданном порядке, а другие программы - следят за сервисами.  Так и происходит сейчас.

Ответить | Правка | Наверх | Cообщить модератору

332. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 21-Ноя-11, 05:11 
> Для этого давным-давно есть monit. :)

Ага, в силу кривости инита - добавим ему костыль. Который к тому же делает все через внешние команды. А при всяких там жестких out of memory и прочих чревато EPIC FAIL-ом, когда не удастся выделить память на запуск +1 интерпретера и скриптов в нем, например. С другой стороны upstart для простых действий вообще без внешних скриптов может обойтись. А поскольку сам он целиком в памяти висит т.к. заменяет init, сие как-то более убедительно выглядит с точки зрения надежности всего этого. В целом он не так уж плох, просто он костылирует систему инициализации. Логичнее просто пхнуть в нее сразу. Тем более что быстрый старт системы всем по вкусу обычно.

[del]
> Это штатный /etc/monitrc.d/EXAMPLES/crond в используемом дистрибутиве -- а можно
> и смотрелку за памятью, и реакцию на подходящее к концу свободное
> место на разделе прикрутить.

Можно. Но по большому счету вот за это я и не жалую классический инит. Он не отвечает требованиям времени и его приходится густо окостыливать, выруливая как умеешь. Monit - один из вариантов, конечно. Но выбирая между 2 костылями и 1 прямым решением - я за прямое.

Ответить | Правка | К родителю #195 | Наверх | Cообщить модератору

361. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (?), 21-Ноя-11, 15:06 
> Ага, в силу кривости инита - добавим ему костыль. Который к тому же делает все через внешние команды.

"Все" - это что именно?

> А при всяких там жестких out of memory и прочих чревато EPIC FAIL-ом, когда не удастся выделить память на запуск +1 интерпретера и скриптов в нем, например.

До такого бардака - можно и _нужно_ систему не доводить.  Для чего давным давно есть механизмы.

>Но по большому счету вот за это я и не жалую классический инит. Он не отвечает требованиям времени и его приходится густо окостыливать, выруливая как умеешь.

В чем здесь костыль для init?  Последний вполне справляется со своей задачей - запускалка сервисов.

Замените init на systemd - необходимость в monit никуда не испарится.

Ответить | Правка | Наверх | Cообщить модератору

381. "Разработчики systemd представили Journal, замену системе sys..."  +1 +/
Сообщение от Аноним (-), 22-Ноя-11, 15:25 
>> Ага, в силу кривости инита - добавим ему костыль. Который к тому же делает все через внешние команды.
> "Все" - это что именно?

Да почти все. Старт/стоп сервисов например. Хотя логичнее делать простейший запуск через сисколы вместо дергания на каждий пук шелла. Тупо пинать шелл на 800к для старта 20к демона если для этого достаточно сделать 1 сискол.

> До такого бардака - можно и _нужно_ систему не доводить.  Для
> чего давным давно есть механизмы.

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

>>Но по большому счету вот за это я и не жалую классический инит. Он не отвечает
>>требованиям времени и его приходится густо окостыливать, выруливая как умеешь.
> В чем здесь костыль для init?  Последний вполне справляется со своей
> задачей - запускалка сервисов.

Да, только вот там простыни мутного кода на 2 страницы делают то же самое что в нормальной системе инициализации делает конфиг на 5-7 строк. И даже меньше.
Из того что я могу отметить:
1) Init не поставит сервису нужный приоритет по простому. Хотя вися под рутом - мог бы и дернуть ОДИН СИСКОЛ, елки. Закостылить можно, но 1 строчка в конфиге нормальной запускалки в 20 раз проще и очевиднее. И запускалка заведомо висящая под рутом уж всяко могла бы сискол для меня пнуть. Дошло! Не прошло и полувека!
2) А если нам надо запустить сетевой демон не раньше чем законектится вон тот сетевой и-фейс, потому что мы например хотим на именно него забиндиться, или что-то подобное, с зависимостями - в случае инита это превращается в сплошную академическую греблю вместо, простите, запускания сервиса. Нет, конечно можно родить турбомегакостыль, просто его создание потребует больше времени чем конфигурежка самого сервиса, бэть.
3) Кому как не запускалке виднее всех что сервис внезапно нае..лся когда его не просили об этом?! Нет, конечно и автоматический рестарт сервиса можно закостылить, только учтя что это для каждого первого сервиса хорошо бы - логично это объявить стандартной фичой.
4) А вот если сервису стало ну совсем плохо, не надо перезапускать его 100 раз в секунду, чтобы не создавать сильную нагрузку на хост тупым рестартом без перспектив! Если сервис не взлетел за несколько попыток - забить на это (+админу выслать сообшение о проблемах в идеале). Как минимум лимитирование рестартов современный вариант инита должен уметь. Т.к. логичное следствие хотелок 1) и 3) и просто подстраховка от EPIC FAIL`ов.

> Замените init на systemd - необходимость в monit никуда не испарится.

Да вообще-то, если современный запускач реализован _нормально_, делая ВСЕ что от него надо, monit должен стать всего лишь костылем с повторным функционалом. Monit решает вполне стандартные проблемы администрежки. Они настолько типовые что почти все из этого списка по уму должен уметь сам init. Или на кой он нужен если ничего не умеет?

Ответить | Правка | Наверх | Cообщить модератору

388. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (?), 22-Ноя-11, 17:15 
> Старт/стоп сервисов например. Хотя логичнее делать простейший запуск через сисколы вместо дергания на каждий пук шелла.

Это гибкое решение.  В шелле можно вызвать утилиты, для последующего ограничения процесса.  И не ждать, покуда наш Песатель соизволит к systemd прикрутить соответствующие крутилки или сам сервис получит соответствующие ключи для командной строки...

> Тупо пинать шелл на 800к для старта 20к демона если для этого достаточно сделать 1 сискол.

Где Вы видели шелл на 800k?  Даже если и так - это накладные расходы на старт, который один раз происходит, а не ежеминутно.  

> А мне вот нужна нажежная и предсказуемая система без лишнего геморроя.

А в чем, собственно, "геморой"?  Ах, я забыл Вам рассказать о том, _какие именно_ есть механизмы...  Ну, rlimits, да те же самые cgroups.

Учиться надо, вот оно в чем проблема-то.

> Да, только вот там простыни мутного кода на 2 страницы делают то же самое что в нормальной системе инициализации делает конфиг на 5-7 строк. И даже меньше.

Покажите этот мутный код в Debian, пожалуйста.  Постараемся поправить, если он действительно "мутный".  А вот "то же самое за 5 строг" - фиг сделаете.  Откройте, пожалуйста, инит-скрипт apache2 и расскажите как реализовать тамошнюю логику на 5 строк.

> 1) Init не поставит сервису нужный приоритет по простому.

Для этого и есть скрипты.  Ставьте, пожалуйста.  Хоть для процесса сервера - хоть для всех процессов из сценария.

> 2) А если нам надо запустить сетевой демон не раньше чем законектится вон тот сетевой и-фейс

Для этого есть порядок последовательности запуска скриптов.  И давно есть зависимости в заголовке LSB-совместимого сценария, чтобы все это было просто настроить.

> 3) Кому как не запускалке виднее всех что сервис внезапно нае..лся когда его не просили об этом?!

"Запускалке" видно только то, что процесс с данным PID - умер.  Или что больше в этой cgroups нету процессов.  Увы, сервис может быть запросто в состоянии "нае...лся" и при этом не сегфолтиться и не завершаться.

И сценарии решения этой проблемы могут быть сложнее "убить и перезапустить" - вот почему и есть monit.  Возможно, нужно логи почистить, возможно запуститить какой-то анти-ddos скрипт.  Или - отладчик подключить.  Все это - не задачи для простой пускалки сервисов init.

> 4) А вот если сервису стало ну совсем плохо, не надо перезапускать его 100 раз в секунду, чтобы не создавать сильную нагрузку на хост тупым рестартом без перспектив! Если сервис не взлетел за несколько попыток - забить на это (+админу выслать сообшение о проблемах в идеале).

Вот и я написал о том, что "не надо".  Только и "забить" - не обязательно лучшее решение.  Еще парочку я набросал выше.  Поймите одно: Единственно Верной (тм) политики разрешения таких проблем - нет и быть не может.  Это задача для гибко конфигурируемой системы мониторинга (monit), а не для init и любой его альтернативы.

> Да вообще-то, если современный запускач реализован _нормально_, делая ВСЕ что от него надо, monit должен стать всего лишь костылем с повторным функционалом. Monit решает вполне стандартные проблемы администрежки. Они настолько типовые что почти все из этого списка по уму должен уметь сам init. Или на кой он нужен если ничего не умеет?

sysv init умеет: стартовать сервисы в нужной (определяемой их зависимостями) последовательности.  Все.  Вы хотите из init сделать систему мониторинга?  Она должна поддерживать тесты кучи протоколов, да еще и настраиваться автомагически?  Накой тащить функционал, единственной разумной настройкой по-умолчанию которого будет - "отключить нафиг".

Поймите, что нет универсального способа настроить ПО типа monit.  Например, действие по-умолчанию для apache может быть "перезапустить n раз и потом забить" - толку от ПО с таким умением будет 0, исключая сегфолтящиеся поделки Поттеринга.  Нормальный тест сервиса должен включать проверку работы бизнес-логики приложения, возможно с оглядкой на другие процессы или ресурсы в системе.

Ответить | Правка | Наверх | Cообщить модератору

396. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 22-Ноя-11, 20:16 
>> Старт/стоп сервисов например. Хотя логичнее делать простейший запуск через сисколы
>> вместо дергания на каждий пук шелла.
> Это гибкое решение.  В шелле можно вызвать утилиты,

ВНЕЗАПНО, если мне не хватило фич системы инициализации - вот тогда я из нее и буду звать скрипт-хелпера, который докостылит до нужной кондиции. Но хотелось бы чтобы в 99.9% случаев этого не требовалось. А оставшийся 0.1% я так и быть докостылю. Желательно чтобы такое случалось после дождичка в четверг, после того как рак на горе даст 3 зеленых свистка вверх.

> для последующего ограничения процесса.  

Я не сомневаюсь что можно прошибить все стены своим лбом. Но слегка утомительно костылить все _стандартные_ типовые случаи. Нахрена мне гибкость резинового фаллоимитатора в случае если я хочу гвоздь забить? Молоток должен быть удобным и должен хорошо забивать гвозди. А то что его в узел видите ли нельзя завязать - может и хрен с ним?!

> И не ждать, покуда наш Песатель соизволит к systemd прикрутить соответствующие
> крутилки или сам сервис получит соответствующие ключи для командной строки...

Я вообще апстарт предпочитаю пока. Оно just works. Вот только знаете, когда конфиг на 5 строк писаный за пару минут делает все ето же что раньше делала пачка костылей и подпорок на 5 кило шеллскрипта, а как бонус система стартует вместо полутора минут 20 секунд, я констатирую EPIC WIN.

>> Тупо пинать шелл на 800к для старта 20к демона если для этого достаточно сделать 1 сискол.
> Где Вы видели шелл на 800k?  

Bash стандартный весит как раз столько. Если не больше.
> Даже если и так - это накладные расходы на старт, который один раз происходит,

Это с хрена ли 1 раз? Он происходит на каждый старт каждого сервиса. Надо запустить 800К бинарь, распарсить скрипт на 2 страницы, отинтерпретировать, и вот тогда... хм... и все это ради того что делается 1 сисколом? А если посчитать сколько раз за это время сискол выполнится и бинарь запустится, обидно не станет?

> а не ежеминутно.

А это уже зависит от природы сервисов.

>> А мне вот нужна нажежная и предсказуемая система без лишнего геморроя.
> А в чем, собственно, "геморой"?  Ах, я забыл Вам рассказать о
> том, _какие именно_ есть механизмы...  Ну, rlimits, да те же самые cgroups.

Они для начала не решают проблему с мониторингом упавшего сервиса вообще. Они скорее дополняют картину. Кстати поттеринг вроде как и cgroups грозился прикрутить. Вообще, логично - если уж фичи есть прямо в ядре, стартер имеет полное право пинать виртуалки и контейнеры, очевидно. Стартить их откуда-то сбоку при старте системы? Хм, опять костыли... на задачи которые опять же уже стали типовыми. Знаете, типовые сценарии пользования системой все-таки не должны напоминать борьбу с ветряными мельницами.

> Учиться надо, вот оно в чем проблема-то.

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

>> Да, только вот там простыни мутного кода на 2 страницы делают то же самое что в
>> нормальной системе инициализации делает конфиг на 5-7 строк. И даже меньше.
> Покажите этот мутный код в Debian, пожалуйста.  

Дебианщики вроде как раз на похожий по смыслу апстарт и собирались (а потом может и на systemd). У меня к апстарту нет никаких претензий. Хотя если вы про обычные скрипты для инита - там даже простейший скрипт бывает _страницей_ текста, для совершенно шаблонных рутинных операций. На самом деле достаточно просто попробовать написать стартовый скрипт для какого-то своего сервиса. И подивиться насколько проще и быстрее это получится с хоть тем же апстартом. Попутно можно настроить плюшки которые в стандартном ините приходится густо окостыливать. Нет даже устаканившегося метода приоритет задать, каждый свой костыль депит если приперло.

> Постараемся поправить, если он действительно "мутный".  

Что, вот прямо так во всех пакетах? 8-\ А вы какой пакет майнтайните в дебиане? Насчет всех и сразу не поверю - там майнтайнеры указаны разные.

> А вот "то же самое за 5 строг" - фиг сделаете.  

Это почему же? Я как раз сделаю за 5 строк типовые операции, а в случае если надо что-то совсем уж из ряда вон - там и будем звать уже хелпера в виде скрипта. Насколько часто такое будет надо - см. выше.

> Откройте, пожалуйста, инит-скрипт apache2 и расскажите как
> реализовать тамошнюю логику на 5 строк.

Внезапно,
1) Я не люблю опаче за общую монструозность. Его скрипты - вполне в духе опача.
2) Это ж надо, из того же апстарта можно и шеллскрипты пинать, если надо.
3) Он даже умеет эмулировать из себя античный init, притворяясь шлангом для как раз таких бакланов которые никак не могут свои каменные топоры выбросить уже наконец. В отместку конечно скорость (ре)старта проседает, но врядли это юзеров монстров типа опача вообще интересует.

>> 1) Init не поставит сервису нужный приоритет по простому.
> Для этого и есть скрипты.  Ставьте, пожалуйста.  Хоть для процесса
> сервера - хоть для всех процессов из сценария.

Нахрен надо - 1 строка в конфига апстарта. В сто раз проще и быстрее написания самолично скриптокостылей. И работает. Без дерга на это огромного интерпретера и что там еще, которые в сумме работают дольше чем стартует сервис.

>> 2) А если нам надо запустить сетевой демон не раньше чем законектится вон тот сетевой и-фейс
> Для этого есть порядок последовательности запуска скриптов.  

А также, если меня не подводит склероз, в этом случае было "очень умное" ничегонеделание системы пока всякие там сетевки раздупляются, получая айпишники по дхцп. Хотя по логике можно бы запускать тех кому сеть вообще не сдалась или конкретная сетевка не требуется. Но конечно же неандертальцам это недоступно. Зачем же геморроиться с выплавкой стали, если можно лианой камень к палке примотать?!

> И давно есть зависимости в заголовке LSB-совместимого сценария, чтобы все это
> было просто настроить.

Понятия о простоте у всех разные. Как по мне - 1 строка в конфиге апстарта это проще некуда. Попробуйте переплюнуть. Глядя на простынки текста в кило весом и больше - да ну его такое нафиг.

>> 3) Кому как не запускалке виднее всех что сервис внезапно нае..лся когда его не просили об этом?!
> "Запускалке" видно только то, что процесс с данным PID - умер.  

А что еще она должна видеть? Именно это от нее и надо. И на скриптах конечно такое родить можно. И даже делают такое. Только геморно. Как зубилом письмо на каменной табличке долбить примерно.

> Или что больше в этой cgroups нету процессов.  Увы, сервис
> может быть запросто в состоянии "нае...лся" и при этом не сегфолтиться
> и не завершаться.

В принципе - может. Поэтому неплохо бы еще и простую валидацию в духе monit. Типа сделать соединение по тцп. Отвечает - ок, не отвечает - дыщ, рестарт. В апстарте такого пока еще нет и такое все-таки придется закостылить. В systemd вроде как что-то такое значилось в планах. Правда вот это Поттеринг, чьи программы отличаются неоднозначностью. У него бывают здравые идеи, но вот их реализация оставляет неоднозначные впечатления.

> И сценарии решения этой проблемы могут быть сложнее "убить и перезапустить" -
> вот почему и есть monit.  

Остается только вопрос нахрен при этом нужен init который ничего не умеет.

> Возможно, нужно логи почистить, возможно запуститить какой-то анти-ddos скрипт.

Запуск программы по расписанию - по большому счету разновидность запуска программ. Поэтому, если не ошибаюсь, авторы апстарта и/или системд и на кроны зубы точат, что довольно логично :)

> Или - отладчик подключить.  Все это - не задачи для простой пускалки сервисов init.

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

>> 4) А вот если сервису стало ну совсем плохо, не надо перезапускать его 100 раз в секунду, чтобы не создавать сильную нагрузку на хост тупым рестартом без перспектив!

...
> Вот и я написал о том, что "не надо".  Только и
> "забить" - не обязательно лучшее решение.  Еще парочку я набросал
> выше.  Поймите одно: Единственно Верной (тм) политики разрешения таких проблем
> - нет и быть не может.  

Так я не спорю что для особо хитровы...тых случаев скрипты или внешние мониторы не лишние. Но для типовых случаев хотелось бы менее костылированных решений.

> Это задача для гибко конфигурируемой системы мониторинга (monit), а не для init
> и любой его альтернативы.

А я вот другого мнения. О monit знаю. Но честно говоря предпочту написать за 2 минуты простой конфиг с базовым рестартом и выставлением приоритета чем полдня сношаться с реализацией этого на шелскриптах и прикручиванию потом к этой куче monit.

>> Да вообще-то, если современный запускач реализован _нормально_, делая ВСЕ что от него надо, monit должен стать всего лишь костылем с повторным функционалом. Monit решает вполне стандартные проблемы администрежки. Они настолько типовые что почти все из этого списка по уму должен уметь сам init. Или на кой он нужен если ничего не умеет?
> sysv init умеет: стартовать сервисы в нужной (определяемой их зависимостями) последовательности.

А каменным топором в принципе можно зарубить мамонта. Но я все-таки предпочитаю не рубать мамонтов каменными топорами. Хоть это и можно, да.

>  Все.  Вы хотите из init сделать систему мониторинга?  

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

> Она должна поддерживать тесты кучи протоколов, да еще и настраиваться автомагически?

По минимуму хватило бы простой проверки ответа сервиса на порту.
Чуть получше: уметь посылать заданный набор байтов и проверять что в ответ приехал ожидаемый ответ. Просто сделать, много веса не добавит. А вот в 90% случаев разгрузит человека от работы по рутинному костылингу стандартных проблем.

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

Для вас разумны одни дефолты. Для других - другие.

> Поймите, что нет универсального способа настроить ПО типа monit.  Например, действие
> по-умолчанию для apache может быть "перезапустить n раз и потом забить"

Ну так апстарт умеет делать не более чем эн рестартов за эм секунд. Если больше - считаем что сервис окончательно одурел и забиваем на это чтобы не нагружать хост тщетными потугами его застартить.

> - толку от ПО с таким умением будет 0, исключая сегфолтящиеся поделки Поттеринга.

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

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

Нет, я конечно понимаю что можно дойти вплоть до написания юнит-тестов для апача, но это будет слегонца перебор, потому что в конечном итоге сбои в бизнес логике - это уже явно не в компетенции администратора и лечить сие должны програмеры :)))

Ответить | Правка | Наверх | Cообщить модератору

398. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от arisu (ok), 22-Ноя-11, 20:25 
> Это с хрена ли 1 раз? Он происходит на каждый старт каждого
> сервиса. Надо запустить 800К бинарь, распарсить скрипт на 2 страницы, отинтерпретировать,
> и вот тогда… хм… и все это ради того что делается
> 1 сисколом? А если посчитать сколько раз за это время сискол
> выполнится и бинарь запустится, обидно не станет?

вот это — квинтэссенция. винда in all it's glory. потому что остальным совершенно по барабану, пол-минуты или три минуты стартует система, ибо происходит это… ну, раз в месяц максимум, а то и реже.

Ответить | Правка | Наверх | Cообщить модератору

409. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от develop7 (ok), 23-Ноя-11, 14:45 
> вот это — квинтэссенция. винда in all it's glory. потому что остальным совершенно по барабану, пол-минуты или три минуты стартует система, ибо происходит это… ну, раз в месяц максимум, а то и реже.

Как пинать убунту за «медленно грузится» и похвастать «16 сек до десктопа», так в очередь выстраиваются, а как systemd говном полить — так «не нужно». Фанатики, что с них взять.

Ответить | Правка | Наверх | Cообщить модератору

430. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от arisu (ok), 24-Ноя-11, 08:42 
цитаты, где я пинал бубунту за «медленно грузится». тебе же не сложно будет их найти, правда? ну, раз ты мне про это написал.
Ответить | Правка | К родителю #409 | Наверх | Cообщить модератору

412. "Разработчики systemd представили Journal, замену системе..."  +1 +/
Сообщение от Аноним (-), 23-Ноя-11, 15:43 
> вот это — квинтэссенция. винда in all it's glory.

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

Пройдусь по сервисам, т.к. пришлось как-то разок влезть в эти г@вна.
Фичи запуска сервисов в винде:
1) Гиморный в редактировании реестр.
2) С совершенно невнятными параметрами.
3) Не допускающий хранения рядом с ними коментариев, в отличие от конфиг-файлов. Встроенного хелпа у сервисов нет, ибо мс не ищет просых путей - см. 5). Манов тоже нет, ибо система ориентирована на даунов. Поэтому два часа траха^W гуглинга по мсдн/течнетам на предмет того какие у сервиса вообще есть параметры - "just in case" просто обеспечены.
4) Приоритеты SCM задавать не может. А оно наверное вообще невозможно в людском виде. Ибо см. пункт 5).
5) Пудаки из микрософта почему-то решили что сервис должен быть ... не, не программой! А дллкой. Видимо ничего умнее они не придумали. В результате есть 1 процесс-стартер и куча гов^W простите, длл "сервисов" висящих в памяти 1 процесса. Ну а мониторить их, особенно на предмет кто сколько ресурсов отожрет - да блин, проблемы негров шерифа Баллмера не волнуют.
6) Рестарт тоже сделан довольно топорно и имбецильно. Лимитироавния числа рестартов не замечено. Или настолько хорошо недокументировано. А если сервис откажется стопаться - он может попасть в состояние "ни вперед ни назад". Убить его как процесс опять же не выйдет. Потому что см. пункт 5). Майкрософт обдурил своим дизайном всех. Даже самих себя.

Итого: по совокупности параметров более уе...ской системы старта сервисов я больше вообще нигде, никогда и ни у кого не видел.

> потому что остальным совершенно по барабану, пол-минуты или три минуты
> стартует система,

Ага. Расскажи это допустим системе видеонаблюдения. Которую вполне можно делать на линуксе. Я вижу некую разницу в том стартанет (линуксное ессно) фирмваре камеры за 5 секунд или за 2 минуты.

> ибо происходит это… ну, раз в месяц максимум, а то и реже.

Даже в этом случае время старта всякой там эмбеддовки например может роялить. Ждать 3 минуты загрузки стиральной машины и прочих холодильников может и подзадолбать. Это не нужно говорите вы? А от и хрен вам отвечаем мы. Компьютеры теперь везде. Они бывают даже вот такие: https://www.opennet.ru/opennews/art.shtml?num=32368 - и для подобной штуки вполне себе роялит, буду я ждать ее загрузки 20 секунд или 3 минуты.

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

Ответить | Правка | Наверх | Cообщить модератору

432. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от arisu (ok), 24-Ноя-11, 09:12 
> Например ядро нт архитектурно не так уж и плохо, потому что
> архитектили это мозгастые парни из VMS. Но что с ним сделали
> маркетолухи и индусы — нет слов.

нормальное ядро. то, что сверху наложили win32 — это уже другой разговор. равно как то, что ядро NT изначально не было предназначено для x86, его в режиме «щабыстрапартиравать» туда перетащили.

> Пройдусь по сервисам, т.к. пришлось как-то разок влезть в эти г@вна.

ты эта… немножко не работал с SCM. то, что оно дурацкое — это один разговор. но не настолько, как ты пытаешься показать, ты частности растягиваешь на общее.

> Ага. Расскажи это допустим системе видеонаблюдения. Которую вполне можно делать на линуксе.

внизапна! при чём тут это? давай ещё притащим сюда эмбеды на 51-м и скажем, что там с линуксом проблемы, ага?

> всякой там эмбеддовки

ничего, что я про «десктопы» говорил, не?

понимаешь, реальные недостатки везде можно найти. для этого не надо из рукава тузы тащить. такие дела.

Ответить | Правка | К родителю #412 | Наверх | Cообщить модератору

446. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от Аноним (-), 29-Ноя-11, 03:57 
>> маркетолухи и индусы — нет слов.
> нормальное ядро. то, что сверху наложили win32 — это уже другой разговор.

А еще всякие там "микро" драйвера, типа win32k.sys на 2 Мб кода, в котором при таком весе находят баги, что логично. А поскольку оно выводит графику, а графика в каждой дыре - часто получаются всякие приколы вплоть до влета ремотного анимированного курсора из браузера прямо в кернелмод.

> равно как то, что ядро NT изначально не было предназначено для
> x86, его в режиме «щабыстрапартиравать» туда перетащили.

Вообще, оно по изначальному дизайну было задумано платформенно нейтральным, всякие HAL и прочие должны были бы этому помогать. По иронии судьбы, пингвин которого по изначальному дизайну пиляли на i386-only намного портабельнее. Я могу взять с полочки платку на ARM, MIPS, PPC или что там у вас еще и запустить линя. А винду вот не могу. Как обычно, теория пошла лесом при встречей с практикой.

>> Пройдусь по сервисам, т.к. пришлось как-то разок влезть в эти г@вна.
> ты эта… немножко не работал с SCM.

Не, я просто охренел насколько там ж и как-то не горел желанием много, хорошо и долго с ним работать. Ну не враг я себе, да.

> то, что оно дурацкое — это один разговор. но не настолько, как ты пытаешься
> показать, ты частности растягиваешь на общее.

Лично мне не нравится когда сервис стал раком отказавшись стопориться а пристрелить можно только процесс-стартер на котором висит пачка критичных системных сервисов, при том если это все-таки удастся сделать (==хватит прав) - в даун отвалится вообще вся система. Это совершенно не доставляет, особенно при экспериментах. Аналогично кстати и с драйверами. Обалдеть, модульный монолит более динамично грузит модули чем хрень где динамическая загрузка "почти длл" ака дров штатно задумана. Во всяком случае, в лине можно вгрузить свежескомпиленый модуль новой ФС, подмаунтить диск, поработать с этой ФС, отмаунтить, выгрузить нахрен модуль обратно. В особо правильном NTвом ядре что-то так не катит, да?

>> Ага. Расскажи это допустим системе видеонаблюдения. Которую вполне можно делать на линуксе.
> внизапна! при чём тут это? давай ещё притащим сюда эмбеды на 51-м
> и скажем, что там с линуксом проблемы, ага?

При том что линь как ни странно на этих эмбедах используется сотнями миллионов. Хорошо когда система масштабируется. А 51-е уже мало кто использует, только сильно некоторые старперы да те кто готов за каждый цент убиться, используя любое г-но если оно хоть на цент дешевле, т.к. тираж 100500 миллионов при ультранизкой цене и нулевом требовании к вычислениям от девайса (всякие там пульты управления унитазом). Только знаешь, система способная запустить линь в сборе со всей обвязкой уже запросто стоит около $25-30. И хорошо если она взлетит за 5 секунд а не за 120. Мало ли что она там делает.

>> всякой там эмбеддовки
> ничего, что я про «десктопы» говорил, не?

А линукс как бы не является жестко прибитым к десктопу. Его успешно пользуют на околоэмбедднутых железках. Всякие дебианы и убунты - на довольно мелких даже.

> понимаешь, реальные недостатки везде можно найти. для этого не надо из рукава
> тузы тащить. такие дела.

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

Ответить | Правка | К родителю #432 | Наверх | Cообщить модератору

447. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от arisu (ok), 29-Ноя-11, 09:05 
> А еще всякие там «микро» драйвера, типа win32k.sys на 2 Мб кода

а что было делать? иначе графика нещадно тормозила. на то время было кривое, но решение. а потом уже переделывать не стали, это бизнес.

> Вообще, оно по изначальному дизайну было задумано платформенно нейтральным

теория — это хорошо. а практика такова, что из-за архитектуры оно опять тормозило и пришлось окостыливать.

> Не, я просто охренел насколько там ж и как-то не горел желанием
> много, хорошо и долго с ним работать. Ну не враг я
> себе, да.

ну и что там за «ж»? таки интересно узнать. то, что для некоторых сервисов есть один мегабинарь — это не проблема SCM, это фэйл реализации конкретных сервисов. а с самим SCM-то что не так?

> Лично мне не нравится когда сервис стал раком отказавшись стопориться а пристрелить
> можно только процесс-стартер на котором висит пачка критичных системных сервисов,

вот ни разу не приходилось. но опять же: это не проблема SCM.

> Это совершенно не доставляет, особенно при экспериментах.

а никто и не обещал, что «эксперименты» будут удобны.

> Аналогично кстати и с драйверами. Обалдеть, модульный монолит более динамично грузит
> модули чем хрень где динамическая загрузка «почти длл» ака дров штатно
> задумана. Во всяком случае, в лине можно вгрузить свежескомпиленый модуль новой
> ФС, подмаунтить диск, поработать с этой ФС, отмаунтить, выгрузить нахрен модуль
> обратно. В особо правильном NTвом ядре что-то так не катит, да?

про драйвера FS я не в курсе, не знаю. а некоторые другие драйвера можно динамически грузить. хотя странно оно там, да.

> При том что линь как ни странно на этих эмбедах используется сотнями
> …
> за 120. Мало ли что она там делает.

отличный был спич. жаль, что на мой вопрос он не отвечает.

> А линукс как бы не является жестко прибитым к десктопу. Его успешно
> пользуют на околоэмбедднутых железках. Всякие дебианы и убунты — на довольно
> мелких даже.

и что? я для тебя расшифрую: в контексте разговора мне совершенно наплевать на эмбедовки. ещё раз повторю: не надо из рукава тузы тащить.

> Можно. Ну так кому надо — тот пусть и трахается с инитом
> из его 70-х. А мне это не надо, извини. Я буду
> использовать то что мне удобнее и то что обладает более хорошими
> параметрами и минимизирует мой гемор по костылестроению.

да трахайся со свомими новомодными перделками, кто же тебе запрещает? собственно, тебе скоро и выбора особого не оставят, насильно запихав какую-нибудь «стартап-систему». а я пешком постою, благодарствую. направлений для улучшения ещё много, но вот init-система — точно не одно из них.

Ответить | Правка | К родителю #446 | Наверх | Cообщить модератору

442. "Разработчики systemd представили Journal, замену системе..."  +/
Сообщение от myhand (ok), 25-Ноя-11, 14:25 
>> потому что остальным совершенно по барабану, пол-минуты или три минуты
>> стартует система,
> Ага. Расскажи это допустим системе видеонаблюдения. Которую вполне можно делать на линуксе.
> Я вижу некую разницу в том стартанет (линуксное ессно) фирмваре камеры
> за 5 секунд или за 2 минуты.

И у Вас проблема сделать это на sysvinit за 5 секунд?!  Интересная логика, почему systemd сумеет выполнить задачу на порядок быстрее более мелкой и простой программы?

Да, те же самые скрипты, что для общецелевого дистрибутива - для embedded-системы не всегда сгодятся.  Но там много чего еще "не годится" - для того и делают специализированные дистрибутивы.

> Хотя лично меня напрягает даже не столько само по себе время старта
> сколько нужда закостыливать каждый раз стандартные типовые операции.

Какие?


Ответить | Правка | К родителю #412 | Наверх | Cообщить модератору

405. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (?), 22-Ноя-11, 23:13 
> ВНЕЗАПНО, если мне не хватило фич системы инициализации - вот тогда я из нее и буду звать скрипт-хелпера, который докостылит до нужной кондиции. Но хотелось бы чтобы в 99.9% случаев этого не требовалось.

Ну тогда - добро пожаловать в Дахау.  Стройте всех разработчиков и читайте им лекцию на тему того, какие действия ихний демон должон сделать при старте и сколько гемороя на С ради этого они должны тащить.

Эффект предсказуем.

> Я не сомневаюсь что можно прошибить все стены своим лбом. Но слегка утомительно костылить все _стандартные_ типовые случаи.

Что в точности вкладывается Вами в понятие "_стандартного_ типового случая"?

> Я вообще апстарт предпочитаю пока. Оно just works. Вот только знаете, когда конфиг на 5 строк писаный за пару минут делает все ето же что раньше делала пачка костылей и подпорок на 5 кило шеллскрипта, а как бонус система стартует вместо полутора минут 20 секунд, я констатирую EPIC WIN.

Делает что?  Как выглядит оный для апача?

Кроме того, сколько стартует система - лично меня мало интересует.  Этот старт происходит раз в полгода.

> Bash стандартный весит как раз столько. Если не больше.

Кто-ж виноват, что Вы bash используете в init-скриптах?

> Это с хрена ли 1 раз? Он происходит на каждый старт каждого сервиса. Надо запустить 800К бинарь, распарсить скрипт на 2 страницы, отинтерпретировать, и вот тогда... хм... и все это ради того что делается 1 сисколом? А если посчитать сколько раз за это время сискол выполнится и бинарь запустится, обидно не станет?

Для талантливых, повторю: запуск каждого сервиса происходит _один раз_ при старте системы.  При остановке - происходит обратный процесс.  Это типичный сценарий (все чуть сложнее, есть разные runlevel).  А система может работать годами.

И, извините, Вы опять врете.  Помимо exec* - Вам может понадобиться приоритеты выставить, лимиты и проч.  Так что даже в Вашей радужной сказке - там отнюдь не один сисколл.

>> А в чем, собственно, "геморой"?  Ах, я забыл Вам рассказать о
>> том, _какие именно_ есть механизмы...  Ну, rlimits, да те же самые cgroups.
>
> Они для начала не решают проблему с мониторингом упавшего сервиса вообще.

Они для этого и не предназначены.  Это статические ограничения.   Мониторингом занимаются специальные программы.

> Дебианщики вроде как раз на похожий по смыслу апстарт и собирались (а потом может и на systemd).

Вранье.  Есть эти пакеты в дистрибутиве.  Ничего более.  Приоритет extra - nuff said.

>> Постараемся поправить, если он действительно "мутный".  
>
>Что, вот прямо так во всех пакетах? 8-\ А вы какой пакет майнтайните в дебиане? Насчет всех и сразу не поверю - там майнтайнеры указаны разные.

Вы, главное, не переживайте.  Я не поправлю - сделаете баг и другие поправят.  Главное, что Вы блудословие прекратите и приведете пример реальной проблемы.

> Внезапно,
> 1) Я не люблю опаче за общую монструозность. Его скрипты - вполне в духе опача.

Не асилил?  Ну вот вам и контингент пользователей systemd...
Такой гибкой архитектуры, как у апача - еще поискать надо.

Что "шеллы пинать" возможность есть - эт хорошо, конечно.  Но не лучше ли сразу признать, что никому кроме десктопов эти ноухау нафиг не сдались?  Как что-то полезное запустить, не из поделок Песателя - так вон сразу и шеллы приходится...

> В принципе - может. Поэтому неплохо бы еще и простую валидацию в духе monit. Типа сделать соединение по тцп. Отвечает - ок, не отвечает - дыщ, рестарт. В апстарте такого пока еще нет и такое все-таки придется закостылить. В systemd вроде как что-то такое значилось в планах.

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

> А что еще она должна видеть? Именно это от нее и надо.

Повторяю, "именно это" - надо только сегфолтящимся приблудам для десктопа.  Нормальному мониторингу это будет только под ногами мешаться.

> Остается только вопрос нахрен при этом нужен init который ничего не умеет.

Он умеет.  Запустить программы в заданном порядке при переходе с уровня на уровень.  Очень простой, понятный и логичный функционал.  Это unix.   Другие программы - делают разные другие полезные вещи.

> Запуск программы по расписанию - по большому счету разновидность запуска программ. Поэтому, если не ошибаюсь, авторы апстарта и/или системд и на кроны зубы точат, что довольно логично :)

Ну, шелл - тоже умеет программы запускать.  Его еще нет в планах?

> Да у инита вообще нет задач. И хрен бы с ними с наворотами типа антиддосов, а вот всякие выставления приоритетов, рестарт упавших и взлет в правильный момент времени когда система к этому уже готова - хотелось бы видеть. В инит всего этого нет а в 100500й раз втыкать стандартный костыль - ни разу не прикольно.

Задачи init я Вам уже пару раз описал.  Повторяться уже лень.

"Выставления приоритетов" (и многое другое для статического ограничения ресурсов) - делаются в init-скриптах.  Один раз.  При настройке системы.  Это задача администратора.  Для того init-скрипты в любом дистрибутиве представляют собой конфигурационные файлы.   И upstart/systemd за Вас данную задачу не решит магически.

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

Ее настраивать надо.  Это _сложно_ и ровно нет никакой возможности настроить подобное автоматически.  99% функционала отключено нафиг по-умолчанию.

> По минимуму хватило бы простой проверки ответа сервиса на порту.
> Чуть получше: уметь посылать заданный набор байтов и проверять что в ответ приехал ожидаемый ответ. Просто сделать, много веса не добавит. А вот в 90% случаев разгрузит человека от работы по рутинному костылингу стандартных проблем.

В 90% процентах - это лишний спам в ящике.  Нету телепатии - до эры AI подобные вещи будут настраиваються людьми.  Примите это как факт.  Вот почему в любом дистрибутиве - есть только _примеры_ для скриптов/конфигурации систем мониторинга.

> Для вас разумны одни дефолты. Для других - другие.

Вот в этом и проблема.  Для десктопа манагера Васи - придется точно также отключить по-умолчанию весь вумный "мониторинг", равно как и для сервера "админа" Коли.

Единственный разумный вариант по-умолчанию: если упало - значит что-то не так, пусть админ посмотрит и разберется.   Падать - не должно.  Сообразите где это умолчание реализовано? ;)

> Ну так апстарт умеет делать не более чем эн рестартов за эм секунд. Если больше - считаем что сервис окончательно одурел

"эм" - это не число.  Это буковки.  Сколько это в цифирь?  Какому сервису какую цифирь выставить?  Не получит ли мейнтейнер пакета по мордасам за то, что выставит эти цифирки?

> Нет, я конечно понимаю что можно дойти вплоть до написания юнит-тестов для апача, но это будет слегонца перебор, потому что в конечном итоге сбои в бизнес логике - это уже явно не в компетенции администратора и лечить сие должны програмеры :)))

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

Ответить | Правка | К родителю #396 | Наверх | Cообщить модератору

413. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от develop7 (ok), 23-Ноя-11, 15:52 
>> ВНЕЗАПНО, если мне не хватило фич системы инициализации - вот тогда я из нее и буду звать скрипт-хелпера, который докостылит до нужной кондиции. Но хотелось бы чтобы в 99.9% случаев этого не требовалось.
> Ну тогда - добро пожаловать в Дахау.  Стройте всех разработчиков и читайте им лекцию на тему того, какие действия ихний демон должон сделать при старте и сколько гемороя на С ради этого они должны тащить.

Максимум — руками написать лаунчер, который будет следить за всеми процессами демона и докладывать systemd, есличо? В 90% случаев — хватит systemdшного ini-файла.

>> Я не сомневаюсь что можно прошибить все стены своим лбом. Но слегка утомительно костылить все _стандартные_ типовые случаи.
> Что в точности вкладывается Вами в понятие "_стандартного_ типового случая"?

90% демонов. deluged, transmissiond, incrond, ntpd — тысячи их. их запускаешь и они работают. сколько это строк конфига systemd — одна, две?

%  wc -l /etc/init.d/ntp
92 /etc/init.d/ntp
И 6 (шесть) аналогичного конфига systemd — http://en.gentoo-wiki.com/wiki/Systemd#ntpd

Вот ещё пример — конфиг sshd: http://en.gentoo-wiki.com/wiki/Systemd#sshd.socket_.28socket... (тоже шесть строк)
Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет. Само собой,

%  wc -l /etc/init.d/ssh 
181

>> Я вообще апстарт предпочитаю пока. Оно just works. Вот только знаете, когда конфиг на 5 строк писаный за пару минут делает все ето же что раньше делала пачка костылей и подпорок на 5 кило шеллскрипта, а как бонус система стартует вместо полутора минут 20 секунд, я констатирую EPIC WIN.
> Делает что?  Как выглядит оный для апача?

Вот примерно так — http://www.linux.uz/forum/index.php?topic=2703.0#msg34308
14 (четырнадцать) строк против 282 у меня в системе. Где-то 20кратная разница.

> И, извините, Вы опять врете.  Помимо exec* - Вам может понадобиться приоритеты выставить, лимиты и проч.  Так что даже в Вашей радужной сказке - там отнюдь не один сисколл.

Три? Пять? Во сколько раз это меньше кол-ва сисколлов sh/grep/sed/tr/прочего шлака, сами посчитаете?

Ответить | Правка | Наверх | Cообщить модератору

417. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 23-Ноя-11, 18:46 
>> Что в точности вкладывается Вами в понятие "_стандартного_ типового случая"?
> 90% демонов. deluged, transmissiond, incrond, ntpd — тысячи их. их запускаешь и они работают. сколько это строк конфига systemd — одна, две?

Бессмысленно сравнивать "в строках", пока Вы не учли - что эти строки в sysvinit
1) на высокоуровневом языке
2) используют кучу общесистемных утилит (сделанных не только для обеспечения загрузки)
3) не учли код самого bloatware (~50k, без учета кучи библиотек), в сравнении с простым sysvinit (~8k _весь_ код, в т.ч. всякие telinit, _без_)
4) ExecStartPre/Post + весь с этим связанный код учли?

Взамен получена туча строк на C, причем используемых только в одном месте...

Без ясного представления автора о том:
1)  какие именно проблемы sysvinit новая система будет решать
2) что мы ей _будем_ делать
3) что мы ей _не будем_ делать

Реализация у него идет впереди проектирования.  С системным ПО это не катит.

Итог: bloatware будет расти, тащить с собой все новые либы с багами, помимо собственных.  Будет Вам в init и splash, и крон...  И в конце-концов какой-нибудь полноценный скриптовый язык, вместо расширяющегося до бесконечности декларативного INI-говна.

> Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет.

В чем именно бонус - в экономии на спичках?  Сисадмин узнает, что с sshd что-то не так (конфиг кривой, к примеру) - не на этапе загрузки, а когда кто-то залогиниться попытается.  Зашибись.

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

> "И 6 (шесть) аналогичного конфига systemd — http://en.gentoo-wiki.com/wiki/Systemd#ntpd"

"Error 503 Service Unavailable".  Ну, см. на ответ на Ваше первое замечание про "строки".

Берите скрипт ssh init скрипт из Debian и показывайте как переписать его.  Там нет указанных выше Ваших проблем с доступностью аргументов (идем на packages.debian.org и смотрим исходный код).

> Вот примерно так — http://www.linux.uz/forum/index.php?topic=2703.0#msg34308
> 14 (четырнадцать) строк против 282 у меня в системе. Где-то 20кратная разница.

За исключением того, что Вы выкинули большую часть функционала init-скрипта апача в том же Debian.  Выкинута логика с htcacheclean, выкинута поддержка нескольких экземпляров апача.  Такое и с init можно соорудить.  Сделать шаблон с именем сервиса, строкой вызова сервиса и стандартным параметром start/stop/restart.  В init-скрипте Вы выставите просто все эти переменные и подключите шаблон.  Одна строчка.

Просто некоторые люди понимают бессмысленность такой "экономии".  Большая часть кода init-скрипта в Debian - обработка опций из /etc/default, разрешение конфликтов конфигурации (админ конфиги не обновил, использует старые параметры в default и т.п.), организация chroot для сервиса и т.п.  А вовсе не тупые "case" с вызовами start-stop-daemon.

> Три? Пять? Во сколько раз это меньше кол-ва сисколлов sh/grep/sed/tr/прочего шлака, сами посчитаете?

Без понятия.  Десятки.  Еще обработка зависимостей, dbus всякие - чего там только нет.

Во сколько выражается разница в скорости загрузки - на реалистичном случае (LSB-совместимая система загрузки, как в Debian vs systemd тамже) я так и не увидел.  Сильно подозреваю, что копейки.

Ответить | Правка | К родителю #413 | Наверх | Cообщить модератору

427. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от develop7 (ok), 23-Ноя-11, 22:14 
> Бессмысленно сравнивать "в строках", пока Вы не учли - что эти строки в sysvinit
> 1) на высокоуровневом языке

Зачем? пример systemd наглядно показывает, что без этого можно обойтись.

> 2) используют кучу общесистемных утилит (сделанных не только для обеспечения загрузки)

Адовый оверхед.

> 3) не учли код самого bloatware (~50k, без учета кучи библиотек), в сравнении с простым sysvinit (~8k _весь_ код, в т.ч. всякие telinit, _без_)

угу, а 100500 exec()'ов grep/tr — это не bloatware, ага. а boilerplate, который даже закэшировать нормально невозможно — это тоже не bloatware.

> 4) ExecStartPre/Post + весь с этим связанный код учли?

На каком основании?

> Взамен получена туча строк на C, причем используемых только в одном месте...

а) вероятнее всего, не в одном б) машинного кода, вообще-то

> Без ясного представления автора о том:
> 1)  какие именно проблемы sysvinit новая система будет решать

г-носкрипты, главным образом

> 2) что мы ей _будем_ делать

запускать системные сервисы

> 3) что мы ей _не будем_ делать

известные мне сведения о фичах systemd меня устраивают. ничего лишнего вроде как не наблюдается.

> Реализация у него идет впереди проектирования.  С системным ПО это не катит.

бла-бла-бла

> Итог: bloatware будет расти, тащить с собой все новые либы с багами, помимо собственных.  Будет Вам в init и splash, и крон...

С чего бы? plymouth уже есть сервисом. Крон в ините не нужен, хватит сервиса.

> И в конце-концов какой-нибудь полноценный скриптовый язык, вместо расширяющегося до бесконечности декларативного INI-говна.

Всё лучше, чем шеллскрипты + grep/tr/прочийшлак. Я молчу насколько это маловероятно.

>> Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет.
> В чем именно бонус - в экономии на спичках?  Сисадмин узнает, что с sshd что-то не так (конфиг кривой, к примеру) - не на этапе загрузки, а когда кто-то залогиниться попытается.  Зашибись.

а) Что-то мешает отладить конфиг обычным порядком и потом переключить в режим ondemand?
б) во-первых, это может быть произвольный демон. Вроде mongodb или redis, которыми я практически не пользуюсь. Во-вторых, это отличное решение для реализации диагностической консоли в каком-нить встраиваемом девайсе.

> Отдельный бонус - эта тварь будет пытаться отрестартить сервис при известных условиях.

Вы тупой или нарочно игнорируете факт, что авторестарт прописывается *явно*? Это вопрос, да. Нет, я не уверен.

>  И это надо будет _отключать_, чтобы не мешать работе нормального мониторинга.

Отключать не надо. *Можно* *включать*. Разберитесь уже там в предмете обсуждения или прекращайте спекулировать, не?

>> "И 6 (шесть) аналогичного конфига systemd — http://en.gentoo-wiki.com/wiki/Systemd#ntpd"
> "Error 503 Service Unavailable".  Ну, см. на ответ на Ваше первое замечание про "строки".

ну сокет-то слушает, не? значит работает. остальное — в конфиги опача.

> Берите скрипт ssh init скрипт из Debian и показывайте как переписать его.

Чьто, внезапно пример с ntp некорректен? А почему?

>> Вот примерно так — http://www.linux.uz/forum/index.php?topic=2703.0#msg34308
>> 14 (четырнадцать) строк против 282 у меня в системе. Где-то 20кратная разница.
> За исключением того, что Вы выкинули большую часть функционала init-скрипта апача в том же Debian.  Выкинута логика с htcacheclean, выкинута поддержка нескольких  экземпляров апача.  Такое и с init можно соорудить.  Сделать  шаблон с именем сервиса, строкой вызова сервиса и стандартным параметром start/stop/restart.  В init-скрипте Вы выставите просто все эти переменные и подключите шаблон.  Одна строчка.

одна строка + boilerplate, который повторяется в *каждом* скрипте. Меньше значимого текста — меньше ошибок. Всё элементарно.

> Просто некоторые люди понимают бессмысленность такой "экономии".  Большая часть кода init-скрипта в Debian - обработка опций из /etc/default, разрешение конфликтов конфигурации (админ конфиги не обновил, использует старые параметры в default и т.п.), организация chroot для сервиса и т.п.  А вовсе не тупые "case" с вызовами start-stop-daemon.

Так пусть это делает скрипт на сишечьке, только в 100500 раз быстрее и нормально написанный на нормальном ЯП.

>> Три? Пять? Во сколько раз это меньше кол-ва сисколлов sh/grep/sed/tr/прочего шлака, сами посчитаете?
> Без понятия.  Десятки.  Еще обработка зависимостей, dbus всякие - чего там только нет.

Это машинный код, понимаете? Неужели вам нужно объяснять, насколько он быстрее?

> Во сколько выражается разница в скорости загрузки - на реалистичном случае (LSB-совместимая система загрузки, как в Debian vs systemd тамже) я так и не увидел.  Сильно подозреваю, что копейки.

http://elinux.org/images/b/b3/Elce11_koen.pdf как бы заливисто смеётся вам в лицо. Давайте, продолжайте обмазываться своими шеллскриптами.

Ответить | Правка | К родителю #417 | Наверх | Cообщить модератору

429. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 23-Ноя-11, 23:29 
>> Бессмысленно сравнивать "в строках", пока Вы не учли - что эти строки в sysvinit
>> 1) на высокоуровневом языке
> Зачем? пример systemd наглядно показывает, что без этого можно обойтись.

Да.  Наплодив уникального (он только для systemd, в отличие от grep и mount) кода на С.  Можно только _верить_, что в этой _новой_ куче С кода, выполняющегося далеко не от простого пользователя, нет пропорционального количества багов.  Блажен кто верует.

>> 2) используют кучу общесистемных утилит (сделанных не только для обеспечения загрузки)
> Адовый оверхед.

Зато отлаженный и работающий код.  Каждая утилита - делает что-то свое, вместо комбайна, функционал которого непонятно чем ограничен.

>> 3) не учли код самого bloatware (~50k, без учета кучи библиотек), в сравнении с простым sysvinit (~8k _весь_ код, в т.ч. всякие telinit, _без_)
> угу, а 100500 exec()'ов grep/tr — это не bloatware, ага. а boilerplate,
> который даже закэшировать нормально невозможно — это тоже не bloatware.

Что там закешировать нельзя?  Десяток бинарников?

>> 4) ExecStartPre/Post + весь с этим связанный код учли?
> На каком основании?

На том, что код шелл-скриптов Вы учли весь.  А эти ExecStartPre/Post - будут указывать как раз на куски старых init-файлов, грубо говоря.

>> Взамен получена туча строк на C, причем используемых только в одном месте...
> а) вероятнее всего, не в одном б) машинного кода, вообще-то

а) Невероятно.  Иначе - соответствующий код вынесли бы в библиотеки.
b) в первую очередь - это строки C кода.  Со всеми прелестями разработки на этом низкоуровневом языке.

>> Без ясного представления автора о том:
>> 1)  какие именно проблемы sysvinit новая система будет решать
> г-носкрипты, главным образом

Смотрю в /etc/init.d/* - покажите, пожалуйста, пальцем
"г-носкрипт".  Эти скрипты - ровно никуда не денутся.  Шаблонная
часть вида case "$1" start) ... stop) - может быть уложена в одну
строчку и без systemd.  Рассказать как?

А все остальное - никуда не денется.  Любой сложный сервис (апач,
постфикс) - потребует ExecStartPre/Post и Ваших нелюбимых "г-носкриптов" там.

>> 2) что мы ей _будем_ делать
> запускать системные сервисы

Что Вы вкладываете в это понятие?  Это пресс-релиз какой-то,
а не техническое задание.  Расшифруйте.  *Как* запускать?
Что при этом делать, а что - не делать и оставить для других утилит.

>> 3) что мы ей _не будем_ делать
> известные мне сведения о фичах systemd меня устраивают. ничего лишнего вроде как
> не наблюдается.

Зачем Вам понадобился dbus?  Как выставление всяческих rlimit-ов,
приоритетов IO-шедулера и проч. относится к старту сервиса?  Вот,
появятся у linux новые крутилки ресурсов - Леннарт добавит
параметр в соответствующую секцию?  И так - до бесконечности?

Где граница того, что "архитектор" этой приблуды скажет "хватит -
делаем exec shell-скрипта и пусть там админ сам вызывает утилиты
для настройки соответствующих параметров".

>> Реализация у него идет впереди проектирования.  С системным ПО это не катит.
> бла-бла-бла

Покажите спецификацию systemd.  Как я уже просил, в духе _полного_
списка решаемых задач.  А не списка "фич", который выглядит потенциально
неограниченым сверху.

>>> Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет.
>> В чем именно бонус - в экономии на спичках?  Сисадмин узнает, что с sshd что-то не так (конфиг кривой, к примеру) - не на этапе загрузки, а когда кто-то залогиниться попытается.  Зашибись.
> а) Что-то мешает отладить конфиг обычным порядком и потом переключить в режим
> ondemand?

А что мешает потом его поломать?

> б) Во-вторых, это отличное решение для реализации диагностической
> консоли в каком-нить встраиваемом девайсе.

Это в первую очередь - "отличное решение", чтобы получить проблему не в четко известное время (при старте сервисов), а хрен знает когда.

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

>> Отдельный бонус - эта тварь будет пытаться отрестартить сервис при известных условиях.
> Вы тупой или нарочно игнорируете факт, что авторестарт прописывается *явно*? Это вопрос,
> да. Нет, я не уверен.

Из документации systemd.service - не очевидно.  Ткните, где четко сказано про такое умолчание.

Буду рад, если ошибся.

>> Берите скрипт ssh init скрипт из Debian и показывайте как переписать его.
> Чьто, внезапно пример с ntp некорректен? А почему?

Вы не поняли? Вот почему: "Error 503 Service Unavailable".  

>> За исключением того, что Вы выкинули большую часть функционала init-скрипта апача в том же Debian.  Выкинута логика с htcacheclean, выкинута поддержка нескольких  экземпляров апача.  Такое и с init можно соорудить.  Сделать  шаблон с именем сервиса, строкой вызова сервиса и стандартным параметром start/stop/restart.  В init-скрипте Вы выставите просто все эти переменные и подключите шаблон.  Одна строчка.
> одна строка + boilerplate, который повторяется в *каждом* скрипте. Меньше значимого текста
> — меньше ошибок. Всё элементарно.

Вы не поняли.  Одной строкой - можно запросто описать один сервис.  При желании.  Конечно, только достаточно простой.  Т.е. вся логика "case $1 start) ... stop) ..." - может быть вынесена в одну строчку.

А вот остальной "boilerplate" - повторяется как раз не в каждом скрипте.  И ровно никуда в systemd - не денется - он просто перекочует в ExecStartPre/Post.

>> Просто некоторые люди понимают бессмысленность такой "экономии".  Большая часть кода init-скрипта в Debian - обработка опций из /etc/default, разрешение конфликтов конфигурации (админ конфиги не обновил, использует старые параметры в default и т.п.), организация chroot для сервиса и т.п.  А вовсе не тупые "case" с вызовами start-stop-daemon.
> Так пусть это делает скрипт на сишечьке, только в 100500 раз быстрее
> и нормально написанный на нормальном ЯП.

Зашибись.  Будем плодить ошибки и дырки в работе со строками, только чтобы не использовать высокоуровневые инструменты.  Как раз предназначеные для автоматизации системных задач.

Откуда число 100500?  "От фонаря" ведь - никаких реальных цифр у Вас нет.

>>> Три? Пять? Во сколько раз это меньше кол-ва сисколлов sh/grep/sed/tr/прочего шлака, сами посчитаете?
>> Без понятия.  Десятки.  Еще обработка зависимостей, dbus всякие - чего там только нет.
> Это машинный код, понимаете? Неужели вам нужно объяснять, насколько он быстрее?

Объясняйте, конечно.  Может появятся таки цифры от Вас - а может кому-то "объяснение" даст повод улыбнуться ;)

>> Во сколько выражается разница в скорости загрузки - на реалистичном случае (LSB-совместимая система загрузки, как в Debian vs systemd тамже) я так и не увидел.  Сильно подозреваю, что копейки.
> http://elinux.org/images/b/b3/Elce11_koen.pdf как бы заливисто смеётся вам в лицо. Давайте,
> продолжайте обмазываться своими шеллскриптами.

Что с чем сравнивалось - ежа с ужом?  Там до systemd была реализованна полноценная поддержка LSB-совместимых скриптов?  Или запуск был последовательным?  Такая "прИзентация" - смеется в лицо прежде всего своему автору, фанату "рокзвезд".  Да и Вам заодно.

Ответить | Правка | К родителю #427 | Наверх | Cообщить модератору

437. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от develop7 (ok), 24-Ноя-11, 13:58 
> Да.  Наплодив уникального (он только для systemd, в отличие от grep и mount) кода на С.  Можно только _верить_, что в этой _новой_ куче С кода, выполняющегося далеко не от простого пользователя, нет пропорционального количества багов.  Блажен кто верует.

Ох мать. Теперь мы с багами боремся.
А апелляция к вере вообще абсурдна. Предпочитаю оперировать фактами. Извините. Вот факты — https://bugs.freedesktop.org/buglist.cgi?product=systemd&com...---
И да, как по-вашему, что быстрее и проще — preg_match() или grep? /usr/bin/mount или mount()?

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

А systemd запускает сервисы согласно их описанию в конфигах. Всё. чем не «что-то своё»?

>>> 3) не учли код самого bloatware (~50k, без учета кучи библиотек), в сравнении с простым sysvinit (~8k _весь_ код, в т.ч. всякие telinit, _без_)
>> угу, а 100500 exec()'ов grep/tr — это не bloatware, ага. а boilerplate, который даже закэшировать нормально невозможно — это тоже не bloatware.
> Что там закешировать нельзя?  Десяток бинарников?

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

>>> 4) ExecStartPre/Post + весь с этим связанный код учли?
>> На каком основании?
> На том, что код шелл-скриптов Вы учли весь.  А эти ExecStartPre/Post - будут указывать как раз на куски старых init-файлов, грубо говоря.

Ну не обязательно же. Зачем всю дорогу передёргивать? systemd в этих местах делает самый обычный exec(). что в нём — забота maintainerа.

>>> Взамен получена туча строк на C, причем используемых только в одном месте...
>> а) вероятнее всего, не в одном б) машинного кода, вообще-то
> а) Невероятно.  Иначе - соответствующий код вынесли бы в библиотеки.

Исходники доступны, доказывайте.
> b) в первую очередь - это строки C кода.  Со всеми прелестями разработки на этом низкоуровневом языке.

это C-то низкоуровневый? Это вы ещё на асме и машкодах не писали.

>>> Без ясного представления автора о том:
>>> 1)  какие именно проблемы sysvinit новая система будет решать
>> г-носкрипты, главным образом
> Смотрю в /etc/init.d/* - покажите, пожалуйста, пальцем "г-носкрипт".  Эти скрипты - ровно никуда не денутся.  Шаблонная часть вида case "$1" start) ... stop) - может быть уложена в одну строчку и без systemd.  Рассказать как?

start-stop-daemon?

> А все остальное - никуда не денется.  Любой сложный сервис (апач, постфикс) - потребует ExecStartPre/Post и Ваших нелюбимых "г-носкриптов" там.

которые внезапно запросто можно реализовать в виде маленьких элегантных бинарников. ну или г-носкриптов — на любителя.

>>> 2) что мы ей _будем_ делать
>> запускать системные сервисы
> Что Вы вкладываете в это понятие?  Это пресс-релиз какой-то, а не техническое задание.  Расшифруйте.  *Как* запускать? Что при этом делать, а что - не делать и оставить для  других утилит.

То есть на sysvinit ТЗ не нужно, а на systemd — обязательно, так?

>>> 3) что мы ей _не будем_ делать
>> известные мне сведения о фичах systemd меня устраивают. ничего лишнего вроде как не наблюдается.
> Зачем Вам понадобился dbus?

Зачем и всем — слать типизированные сообщения кому попало, не заморачиваясь необходимостью проверять, запущен ли этот самый кто попало. Нет, сигналы для этого непригодны.

>  Как выставление всяческих rlimit-ов, приоритетов IO-шедулера и проч. относится к старту сервиса? Вот, появятся у linux новые крутилки ресурсов - Леннарт добавит параметр в соответствующую секцию?  И так - до бесконечности?

То есть как в initскрипте прописать ionice — так нормально и правильно, а как systemd сказать, чтобы выставил нужный приоритет — так ненужно и нерелевантно. Двоемыслие во все поля, да.
Ну и да, добавлять — не убирать. BC не ломает.

> Где граница того, что "архитектор" этой приблуды скажет "хватит - делаем exec shell-скрипта и пусть там админ сам вызывает утилиты для настройки соответствующих параметров".

Это можно делать уже сейчас — sh -c в любом из Exec*'ов. А Леннарту (я убеждён) вообще пофиг, как это используется.

>>> Реализация у него идет впереди проектирования.  С системным ПО это не катит.
>> бла-бла-бла
> Покажите спецификацию systemd.  Как я уже просил, в духе _полного_ списка решаемых задач.  А не списка "фич", который выглядит потенциально неограниченым сверху.

Беглый гуглёж не нашёл спеки на sysvinit. Двойные стандарты во все поля.

>>>> Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет.
>>> В чем именно бонус - в экономии на спичках?  Сисадмин узнает, что с sshd что-то не так (конфиг кривой, к примеру) - не на этапе загрузки, а когда кто-то залогиниться попытается.  Зашибись.
>> а) Что-то мешает отладить конфиг обычным порядком и потом переключить в режим ondemand?
> А что мешает потом его поломать?

Напомните-ка, зачем-зачем нужно ломать то, что работает?

>> б) Во-вторых, это отличное решение для реализации диагностической консоли в каком-нить встраиваемом девайсе.
> Это в первую очередь - "отличное решение", чтобы получить проблему не в четко известное время (при старте сервисов), а хрен знает когда.

Тестируется на раз. Поэтому мимо.

> Поймите, я не просто ругаю.  Мне непонятно - абсолютно-ли необходима эта "фича" Вашей "запускалке для сервисов".  Может, лучше ее было бы выкинуть - а сервис, который потребует такого счастья запускать через специальную обертку?

Эта фича — просто приятный бонус. Не более.

>>> Отдельный бонус - эта тварь будет пытаться отрестартить сервис при известных условиях.
>> Вы тупой или нарочно игнорируете факт, что авторестарт прописывается *явно*? Это вопрос, да. Нет, я не уверен.
> Из документации systemd.service - не очевидно.  Ткните, где четко сказано про такое умолчание. Буду рад, если ошибся.

Элементарно — http://cgit.freedesktop.org/systemd/tree/man/systemd.service... Нашлось за 5 минут.

>>> Берите скрипт ssh init скрипт из Debian и показывайте как переписать его.
>> Чьто, внезапно пример с ntp некорректен? А почему?
> Вы не поняли? Вот почему: "Error 503 Service Unavailable".

error 503? у ntpd? Брысь обратно в свою параллельную вселенную.

>>> За исключением того, что Вы выкинули большую часть функционала init-скрипта апача в том же Debian.  Выкинута логика с htcacheclean, выкинута поддержка нескольких  экземпляров апача.  Такое и с init можно соорудить.  Сделать  шаблон с именем сервиса, строкой вызова сервиса и стандартным параметром start/stop/restart.  В init-скрипте Вы выставите просто все эти переменные и подключите шаблон.  Одна строчка.
>> одна строка + boilerplate, который повторяется в *каждом* скрипте. Меньше значимого текста — меньше ошибок. Всё элементарно.
> Вы не поняли.  Одной строкой - можно запросто описать один сервис. При желании.  Конечно, только достаточно простой.  Т.е. вся логика "case $1 start) ... stop) ..." - может быть вынесена в одну строчку.

Но не выносится. Чуть менее, чем везде — https://gist.github.com/6af2f58c87cd97e1ec08

> А вот остальной "boilerplate" - повторяется как раз не в каждом скрипте. И ровно никуда в systemd - не денется - он просто перекочует в ExecStartPre/Post.

Это решать maintainerу, systemd тут ничего не навязывает. Хотя я бы предпочёл маленькие бинарнички.

>>> Просто некоторые люди понимают бессмысленность такой "экономии".  Большая часть кода init-скрипта в Debian - обработка опций из /etc/default, разрешение конфликтов конфигурации (админ конфиги не обновил, использует старые параметры в default и т.п.), организация chroot для сервиса и т.п.  А вовсе не тупые "case" с вызовами start-stop-daemon.
>> Так пусть это делает скрипт на сишечьке, только в 100500 раз быстрее и нормально написанный на нормальном ЯП.
> Зашибись.  Будем плодить ошибки и дырки в работе со строками, только чтобы не использовать высокоуровневые инструменты.  Как раз предназначеные для автоматизации системных задач.

Can't into getopt и stdlib?

> Откуда число 100500?  "От фонаря" ведь - никаких реальных цифр у Вас нет.

Предположение, да. Бенчить лень.

>>>> Три? Пять? Во сколько раз это меньше кол-ва сисколлов sh/grep/sed/tr/прочего шлака, сами посчитаете?
>>> Без понятия.  Десятки.  Еще обработка зависимостей, dbus всякие - чего там только нет.
>> Это машинный код, понимаете? Неужели вам нужно объяснять, насколько он быстрее?
> Объясняйте, конечно.  Может появятся таки цифры от Вас - а может кому-то "объяснение" даст повод улыбнуться ;)

Да вы и сами добудете эти цифры. Года через три.

>>> Во сколько выражается разница в скорости загрузки - на реалистичном случае (LSB-совместимая система загрузки, как в Debian vs systemd тамже) я так и не увидел.  Сильно подозреваю, что копейки.
>> http://elinux.org/images/b/b3/Elce11_koen.pdf как бы заливисто смеётся вам в лицо. Давайте, продолжайте обмазываться своими шеллскриптами.
> Что с чем сравнивалось - ежа с ужом?  Там до systemd была реализованна полноценная поддержка LSB-совместимых скриптов?  Или запуск был последовательным? Такая "прИзентация" - смеется в лицо прежде всего своему автору, фанату "рокзвезд".  Да и Вам заодно.

Теперь вы показываете, как userspace грузится за аналогичное время, но на sysvinit. Вот тогда мы и похохочем.

Ответить | Правка | К родителю #429 | Наверх | Cообщить модератору

438. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 24-Ноя-11, 16:13 
>>>> Берите скрипт ssh init скрипт из Debian и показывайте как переписать его.
>>> Чьто, внезапно пример с ntp некорректен? А почему?
>> Вы не поняли? Вот почему: "Error 503 Service Unavailable".
>
>error 503? у ntpd? Брысь обратно в свою параллельную вселенную.

Нет, тупица.  У цитированного сайта генты.  Он был недоступен, причем оба раза - когда я отвечал.

> Предпочитаю оперировать фактами. Извините. Вот факты — https://bugs.freedesktop.org/buglist.cgi?product=systemd&com...

Это _известные_ баги.  И покуда systemd никому (кроме федоры) нафиг не упал.

А факты Вам - пожалуйста.  Берем init-скрипты Debian, шерстим там на предмет всевозможных бинарников, идем в багтрекер и смотрим на количество багов в этих бинарниках.  Шаг второй: идем на родные странички проектов и добавляем баги из upstream.  Не забывайте в "Closed" состоянии добавить.

Можете смело ограничиться ошибками работы с памятью.  Если Поттеринг не волшебный суперасс - почему у него в коде багов на эту тему будет меньше, чем в сопоставимой по размеру базе C кода?

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

"Не читал, но осуждаю" (с)  Приведите "повторяющиеся куски" и их отношение к уникальным на конкретном примере init-скриптов - раз.  Два - объясните, почему их нельзя закешировать.

>> На том, что код шелл-скриптов Вы учли весь.  А эти ExecStartPre/Post - будут указывать как раз на куски старых init-файлов, грубо говоря.
>
> Ну не обязательно же. Зачем всю дорогу передёргивать? systemd в этих местах делает самый обычный exec(). что в нём — забота maintainerа.

Но разве не Вы хвалились, что _все_ в каждом скрипте из /etc/init.d/* будет сведено к паре строк в конфиге systemd.  Ну так вот - не будет, для мало-мальски сложного сервиса.  Примеры я приводил.  Так что скрипты в ExecStartPre/Post - извольте учитывать.

>>>> Взамен получена туча строк на C, причем используемых только в одном месте...
>>> а) вероятнее всего, не в одном б) машинного кода, вообще-то
>> а) Невероятно.  Иначе - соответствующий код вынесли бы в библиотеки.
>
> Исходники доступны, доказывайте.

Пожалуйста.  Смотрите на пакет в Debian - никаких либ из исходников systemd не собирается, кроме интерфейсов для взаимодействия с ним (libsystemd-daemon0, libsystemd-login0).  Там даже на 5% не наберется.  Все остальное - systemd-only.

>> b) в первую очередь - это строки C кода.  Со всеми прелестями разработки на этом низкоуровневом языке.
> это C-то низкоуровневый? Это вы ещё на асме и машкодах не писали.

Да. C - низкоуровневый язык.  "Переносимый ассемблер".  На чем я не писал - можешь дальше фантазировать.

>> Смотрю в /etc/init.d/* - покажите, пожалуйста, пальцем "г-носкрипт".  Эти скрипты - ровно никуда не денутся.  Шаблонная часть вида case "$1" start) ... stop) - может быть уложена в одну строчку и без systemd.  Рассказать как?
> start-stop-daemon?

start-stop-daemon, да.  Но он и без того там есть.  Просто при желании можно достаточно стандартный кусок "case $1 start) ... stop) ..." c вызовами start-stop-daemon - оформить как функцию.  И просто ее вызывать.  Будет строчка или две - в духе ExecStart & Description.  Просто кто-то понимает, что смысла в подобном рукоблудстве нуль - а кто-то нет.

>> А все остальное - никуда не денется.  Любой сложный сервис (апач, постфикс) - потребует ExecStartPre/Post и Ваших нелюбимых "г-носкриптов" там.
> которые внезапно запросто можно реализовать в виде маленьких элегантных бинарников. ну или г-носкриптов — на любителя.

Да.  _Можно_.  Но делать никто не будет.  Останутся скрипты - как и было.  Люди не любят экономить на спичках в ущерб своему удобству.

Так и запишем: "Shell-free bootup" - полная лажа.  Ничего подобного systemd, вообще говоря, не обеспечивает.  Кроме специализированных/игрушечных ситуаций.  Кстати, при желании - подобное может и sysvinit.  man inittab

>> Что Вы вкладываете в это понятие?  Это пресс-релиз какой-то, а не техническое задание.  Расшифруйте.  *Как* запускать? Что при этом делать, а что - не делать и оставить для  других утилит.
> То есть на sysvinit ТЗ не нужно, а на systemd — обязательно, так?

Для sysvinit давно уже есть стандарты (см. man, спецификации LSB) и стабильная реализация.

>>  Как выставление всяческих rlimit-ов, приоритетов IO-шедулера и проч. относится к старту сервиса? Вот, появятся у linux новые крутилки ресурсов - Леннарт добавит параметр в соответствующую секцию?  И так - до бесконечности?
> То есть как в initскрипте прописать ionice — так нормально и правильно, а как systemd сказать, чтобы выставил нужный приоритет — так ненужно и нерелевантно. Двоемыслие во все поля, да.

"Прописать в init-скрипте" - никак не относится к функционалу init.  Есть утилиты или интерфейсы ядра типа /sys - можно "прописать".  Появятся новые крутилки в ядре - init никак не изменится.  А что будет с systemd?  Не вижу двоемыслия - есть банальная неопределенность в том, какие задачи будет решать systemd и какие _не будет_.  Имеем bloatware by design.

>> Где граница того, что "архитектор" этой приблуды скажет "хватит - делаем exec shell-скрипта и пусть там админ сам вызывает утилиты для настройки соответствующих параметров".
> Это можно делать уже сейчас — sh -c в любом из Exec*'ов. А Леннарту (я убеждён) вообще пофиг, как это используется.

Вот и я про то, что ему "пофиг".  Эта "фича" крутая - давай прикрутим.  Вот на таком уровне все "проектирование".

> Беглый гуглёж не нашёл спеки на sysvinit. Двойные стандарты во все поля.

Если Вы "гуглите" man-страницы или LSB - мне Вас жаль...

>>>>> Отдельным бонусом идёт старт сервиса не при загрузке, а при первом стуке в сокет.
>>>> В чем именно бонус - в экономии на спичках?  Сисадмин узнает, что с sshd что-то не так (конфиг кривой, к примеру) - не на этапе загрузки, а когда кто-то залогиниться попытается.  Зашибись.
>>> а) Что-то мешает отладить конфиг обычным порядком и потом переключить в режим ondemand?
>> А что мешает потом его поломать?
>
> Напомните-ка, зачем-зачем нужно ломать то, что работает?

Затем, что люди делают ошибки.  Например - могут ошибиться при очередном изменении конфигурации демона.

>>> б) Во-вторых, это отличное решение для реализации диагностической консоли в каком-нить встраиваемом девайсе.
>> Это в первую очередь - "отличное решение", чтобы получить проблему не в четко известное время (при старте сервисов), а хрен знает когда.
>
> Тестируется на раз. Поэтому мимо.

Это как?  При любом рестарте - лезть сразу на сервис, только чтобы убедиться в его работоспособности?  Нет другого способа - испорченный конфиг только один источник проблемы при последующем старте on-demand....   В чем тогда смысл "фичи"?

>> Поймите, я не просто ругаю.  Мне непонятно - абсолютно-ли необходима эта "фича" Вашей "запускалке для сервисов".  Может, лучше ее было бы выкинуть - а сервис, который потребует такого счастья запускать через специальную обертку?
> Эта фича — просто приятный бонус. Не более.

И таких вагон.  Грамотно спроектированное системное приложение - имеет четко очерченный функционал.   Без всяких "бонусов", приятных или нет.

>> Из документации systemd.service - не очевидно.  Ткните, где четко сказано про такое умолчание. Буду рад, если ошибся.
> Элементарно — http://cgit.freedesktop.org/systemd/tree/man/systemd.service... Нашлось за 5 минут.

Клоун, я уже упомянул этот документ: "из документации systemd.service - не очевидно".  Покажите мне где там очевидным образом указаны умолчания для Restart.  Эта директива вообще - опциональна или нет?  Какие вообще директивы в описании сервиса _не опциональны_?

И сравните с форматом inittab для контраста.  В последнем - явно указано, что поле action _не является_ опциональным.  И, в частности, respawn там должен быть прописан явно.

> Но не выносится. Чуть менее, чем везде — https://gist.github.com/6af2f58c87cd97e1ec08

Потому что люди не видят в этом проблему.

>> А вот остальной "boilerplate" - повторяется как раз не в каждом скрипте. И ровно никуда в systemd - не денется - он просто перекочует в ExecStartPre/Post.
> Это решать maintainerу, systemd тут ничего не навязывает. Хотя я бы предпочёл маленькие бинарнички.

Мда, тяжелый случай.  Сколько Вам лет, если не секрет? :)  Сможете ответить на этот вопрос честно?

Вы действительно так и не поняли, с учетом всех моих объяснений и примеров, почему эти "маленькие бинарничики" - не появятся _никогда_?

>> Откуда число 100500?  "От фонаря" ведь - никаких реальных цифр у Вас нет.
> Предположение, да. Бенчить лень.
>> Объясняйте, конечно.  Может появятся таки цифры от Вас - а может кому-то "объяснение" даст повод улыбнуться ;)
> Да вы и сами добудете эти цифры. Года через три.

Ну, вот и кончен разговор про "машинный код" и прочую лабуду от Вас.  Кстати, "года через три" - будет wheezy и в планах там даже отдаленно systemd не значится.  Не все какашки поттеринга суют куда не попадя...

> Теперь вы показываете, как userspace грузится за аналогичное время, но на sysvinit. Вот тогда мы и похохочем.

У меня десктоп грузится за ~< 5 сек (точнее не измерял, т.к. на уровне "на глаз не заметно").  Организуете мне такую же как  в статье железку для тестов и оплатите мое время - покажу как и что можно сделать на sysvinit.

Ответить | Правка | К родителю #437 | Наверх | Cообщить модератору

418. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 23-Ноя-11, 19:58 
[del]
> Ну тогда - добро пожаловать в Дахау.  Стройте всех разработчиков и
> читайте им лекцию на тему того, какие действия ихний демон должон сделать при старте

Я никого строить не собираюсь, время само выпилит мамонтов в пользу млекопитающих.

[del]
> и сколько гемороя на С ради этого они должны тащить.

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

> Эффект предсказуем.

Я уже на себе ощутил его. С апстартом. То что раньше я делал за 2 часа копания в кривых и глюкавых скриптах писаных какими-то лабухами на коленке да еще с хардкодом имени сервиса и прочих радостей прямо в скрипте в середине оного, теперь делает конфиг на 5-7 строк который набрасывается за 5 минут из первой же нагугленой болванки (можно даже ман не читать, все и так очевидно). С точки зрения администрирования - небо и земля.

>> Я не сомневаюсь что можно прошибить все стены своим лбом. Но слегка утомительно
>> костылить все _стандартные_ типовые случаи.
> Что в точности вкладывается Вами в понятие "_стандартного_ типового случая"?

Например, собрал я некую прогу. Которой в репах нет. Демона, ессно. Что еще на серверах кроме них водится? Надо стало быть запустить. А вот тут опа. Потому что стартового скрипта обычно или нет совсем, или он кривой до ужаса. Никакого вам мониторинга состояния демона не умеет. Или это делается адски криво (вплоть до прописывания в крон скрипта-чекера который раз в несколько минут ищет pid и перезапускает демон если pid не найден).

> Делает что?  Как выглядит оный для апача?

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

> Кроме того, сколько стартует система - лично меня мало интересует.  Этот
> старт происходит раз в полгода.

Меня для начала волнует мое удобство. Многокилобайтные простыни которые не обеспечивают даже элементарного рестарта сервиса при откровенном его падении - как-то не сильно удобно и требует кучи костылирования.

>> Bash стандартный весит как раз столько. Если не больше.
> Кто-ж виноват, что Вы bash используете в init-скриптах?

Не, давайте я еще буду разучивать языки 100500 разных интерпретаторов. Вот всю жизнь мечтал изучить все существующие на планете интерпретеры, аж два раза (для надежности).

> Для талантливых, повторю: запуск каждого сервиса происходит _один раз_ при старте системы.

Вообще-то это ниоткуда не следует. Вообще, есть еще всякие шедуленые мероприятия, изменения состояний системы и прочая.

>  При остановке - происходит обратный процесс.  Это типичный сценарий
> (все чуть сложнее, есть разные runlevel).  А система может работать годами.

Может работать. А может не работать. А еще надо б мониторить что сдохло. А еще надо б по расписанию гонять задания. А еще неплохо б отслеживать различные события. И так далее.

> И, извините, Вы опять врете.  Помимо exec* - Вам может понадобиться
> приоритеты выставить, лимиты и проч.  Так что даже в Вашей
> радужной сказке - там отнюдь не один сисколл.

В простейшем случает один. Ну пусть даже пяток, с лимитами и приоритетом. По факту получается 5-7 строчек конфига. Что намного лучше тех мегарпостыней где г-но размазано по простыне на 2 страницы в меру дури ее автора, где в середине порой захардкожено имя сервиса и прочее. Всякие там приоритеты и лимиты авторы скриптов вообще не реализуют - это мне самому предлагается докостылить. Самым простым докостылингом выглядит дописать пару строк в мизерный конфиг, а не лопатить простыню на 2 экрана, извините.

>> Они для начала не решают проблему с мониторингом упавшего сервиса вообще.
> Они для этого и не предназначены.  Это статические ограничения.  
> Мониторингом занимаются специальные программы.

Угу. А инит вообще непонятно чем занимается. Висит в памяти все время работы ситемы. Больше он нихрена не умеет. Поэтому докостыливать всякие там расстановки приоритетов/лимитов/перезапуски и прочее приходится самолично. Вот радости то, каждый раз делать одну и ту же мартышкину работу в не сильно удобном виде.

> Вранье.  Есть эти пакеты в дистрибутиве.  Ничего более.  Приоритет extra - nuff said.

А потом удивляются когда википедики всякие валят на убунты, а не дебиан. Ну вот админы - тоже люди. И чем удобнее и быстрее с системой управляться - тем лучше. Особенно если серверов много а админов мало.

>>> Постараемся поправить, если он действительно "мутный".  
>>Что, вот прямо так во всех пакетах? 8-\ А вы какой пакет майнтайните в дебиане?
>>Насчет всех и сразу не поверю - там майнтайнеры указаны разные.
> Вы, главное, не переживайте.  Я не поправлю - сделаете баг и другие поправят.  

Я и не переживаю: при наличии целой кучи дистров можно просто выбрать тот в котором наиболее удобно. Так, на подумаь: в серверной убунте менее архаичный софт, более удобная система инициализации и есть на выбор LTS ветка для тех кому стабильность, и обычная для тех кому свежак. Поэтому ее юзеж на сервере в общем случае для меня менее геморроен. А апстарт - мелкая, но довольно приятная фича. Вносящая свою капельку веса при складывании разных дистров на разные чаши весов и принятии решения "а чего же мне все-таки использовать из всего этого великолепия у себя?"

> Главное, что Вы блудословие прекратите и приведете пример реальной проблемы.

Реальная проблема: сервис которого нет в репах. Самосборный или еще не попавший в оные. Мне написать ему конфиг для апстарта в 10 раз проще и быстрее чем возиться с скриптошитом на несколько страниц, которые сделает то же самое, но с куда большей возней и хучшим результатом.

>> Внезапно,
>> 1) Я не люблю опаче за общую монструозность. Его скрипты - вполне в духе опача.
> Не асилил?  

Нет, просто открыл для себя nginx и lighttpd и узнал что серверу совсем не обязательно быть 16-ядерным монстром с 128Гб оперативки чтобы выдерживать целую толпу народа.

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

> Ну вот вам и контингент пользователей systemd...

Ну вообще-то апстарта в основном, но это не мешает признавать что systemd местами задуман неплохо. Вот правда реализует это Поттеринг, что как-то стремновато, увы.

> Такой гибкой архитектуры, как у апача - еще поискать надо.

Такой жуткой архитектуры и реализации как у апача - еще поискать надо. Получился огромный и тормозной ресурсожоркий переросток, благодаря которому некоторые искренне полагают что машины с менее 16 ядер и 128 гиг памяти сервировать в принципе не способны, даже 10 человек.

> Что "шеллы пинать" возможность есть - эт хорошо, конечно.  Но не
> лучше ли сразу признать, что никому кроме десктопов эти ноухау нафиг не сдались?

Да я как-то и на сервере не дурак попользоваться апстартом. Потому что мне тупо удобнее и куда быстрее прописать 5-7 строк конфига чем ворочать многокилобайтные портянки, зело непохожие друг на друга и очень разные по качеству кода в них.

> Как что-то полезное запустить, не из поделок Песателя
> - так вон сразу и шеллы приходится...

Да вообще-то я несколько нужных лично мне демонов недавно на серваке запустил через апстарт. Доставило. Это оказалось намного проще и быстрее чем, простите, то же самое на шеллскриптах городить через инит. Вот напрасно я боялся этого апстарта, наслушавшись всяких козлов, что там все извратно и сложно. Оказалось что просто как топор, пример конфига гуглится за 5 минут и вообще намного проще чем колупать портянки на 2 экрана весьма различные по конструкции (или отсутствующие) у разных авторов софта.

>> пока еще нет и такое все-таки придется закостылить.
>> В systemd вроде как что-то такое значилось в планах.
> Совать такое в аналог init - тупо.  Либо получите монстра, там
> где была простенькая программа с ясным поведением.  

И в каком месте тот же monit монстр? По сути это почти инит, только сделанный менее через задницу и куда более соответствующий жизненным реалиям. Остается только вопрос - а нахрен инит место в списке процессов тогда занимает, ась? Бесполезный балласт.

> Либо получите недомониторинг, который при более-менее серьезном применении
> нужно просто выключить.

Нормальные программы имеют свойство быть модульными и допускать внешние компоненты. Тот же monit не такой уж и монструоный в общем то.

>> А что еще она должна видеть? Именно это от нее и надо.
> Повторяю, "именно это" - надо только сегфолтящимся приблудам для десктопа.  Нормальному
> мониторингу это будет только под ногами мешаться.

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

>> Остается только вопрос нахрен при этом нужен init который ничего не умеет.
> Он умеет.  Запустить программы в заданном порядке при переходе с уровня
> на уровень.  Очень простой, понятный и логичный функционал.  

Да, просто немного не соответствует современным требованиям, а так сущая ерунда.

> Это unix.   Другие программы - делают разные другие полезные вещи.

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

> Ну, шелл - тоже умеет программы запускать.  

И еще много кто. Чем шелл лучше них?

> Его еще нет в планах?

Не думаю. Чем шелл лучше остальных? И не вижу особых проблем от запуска внешнего шелла.

> Задачи init я Вам уже пару раз описал.  Повторяться уже лень.

Если честно - мне глубоко пополам на какие-то там "задачи init". А это кто такое и почему это меня должно интересовать? Мне не пополам на _мои_ задачи и насколько много геморроя у меня будет. Вы прикиньте? :)))

> "Выставления приоритетов" (и многое другое для статического ограничения ресурсов) -
> делаются в init-скриптах.  

А в апстарте такое делается тупо в конфиге оного. Что проще и быстрее.

> Один раз.  

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

> При настройке системы.  

Уй, надо еще добавить что 640 кило хватит всем. Чтобы уж наверняка.

> Это задача администратора.

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

> Для того init-скрипты в любом дистрибутиве представляют собой
> конфигурационные файлы.  

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

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

В такой ситуации ака "старт с нуля" как-то оказалось что проще всего накатать конфиг апстарту, а вовсе не городить многоэтажные макароны из кучи шеллскриптов.

> И upstart/systemd за Вас данную задачу не решит магически.

Конечно. Что так что сяк мне придется в одном случае писать конфиг, в втором писать или дорабатывать скрипты. Первое получается намного проще и быстрее и потом результат куда приятнее для глаз. Как бонус еще и система быстрее стартует.

>> Я бы хотел там видеть в том числе и какую-то базовую систему мониторинга живости
>>сервисов которые он же и запускает, чуть больше чем просто отслеживание падения процесса.
> Ее настраивать надо.  Это _сложно_ и ровно нет никакой возможности настроить
> подобное автоматически.  

Да чего там сложного? Самый тривиальный и действенный метод верификации демона сводится к всего 3 кусочкам в конфиге.
1) Что и куда послать, по какому протоколу, etc.
2) Что и за какой таймаут должно приехать в ответ.

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

> 99% функционала отключено нафиг по-умолчанию.

См. выше чего хотел бы видеть в такой штуке лично я. Это позволит чекать кучу сервисов от хттп сервера до почтаря вполне адекватно проверяя их живость и способность ответить за таймаут. По минимуму около 2-3 строк конфига выходит. Всякий совсем ынтерпрайз конечно пихать туда ни к чему (хотя если кому надо и они напищут себе отдельный плагин, врядли кто будет отбиваться ногами).

>> По минимуму хватило бы простой проверки ответа сервиса на порту.
>> Чуть получше: уметь посылать заданный набор байтов и проверять что в ответ приехал
>> ожидаемый ответ. Просто сделать, много веса не добавит. А вот в 90% случаев разгрузит
>> человека от работы по рутинному костылингу стандартных проблем.
> В 90% процентах - это лишний спам в ящике.  

Какой спам? В какой ящике? Кто и зачем будет спамить?

> Нету телепатии - до эры AI подобные вещи будут настраиваються людьми.  Примите
> это как факт.  Вот почему в любом дистрибутиве - есть только _примеры_
> для скриптов/конфигурации систем мониторинга.

Опять же, настраивать ынтырпрайзный мониторинг чтобы чекать аж почтарь, хытытыпы и какойнить там днс на мелком сервачке - явный оверкилл и подобное вполне мог бы делать и тот кто их запускает. Нехай станет не только запускачем но и супервизором работы, пусть не самым забористым но покрывающим 90-95% простых случаев и осваиваемый за 2 минуты. Геморроиться с расстановкой костылей для этого лично - не очень охота. Доставать ынтырпрайзные махины для проверки того что хттп сервак не сдох - тоже.

>> Для вас разумны одни дефолты. Для других - другие.
> Вот в этом и проблема.  Для десктопа манагера Васи - придется  точно также
> отключить по-умолчанию весь вумный "мониторинг", равно как и для сервера "админа" Коли.

Что значит - отключать? Включаться он должен только если я изъявил желание чтобы сервис мониторился на живость. Куда-то по соседству с настройками рестартов и их допустимого количества.

> Единственный разумный вариант по-умолчанию: если упало - значит что-то не так, пусть
> админ посмотрит и разберется.   Падать - не должно.  

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

> Сообразите где это умолчание реализовано? ;)

У меня немного другой взгляд на проблему. Фэйл должен быть залогген и я должен бы получить о нем уведомление, но вот караулить постоянно как цербер? Лично? Окарауливайте, я не против. Вахтер тоже человек.

>> Ну так апстарт умеет делать не более чем эн рестартов за эм секунд. Если больше -
>> считаем что сервис окончательно одурел
> "эм" - это не число.  Это буковки.  Сколько это в цифирь?  

По вкусу и здравому смыслу. Я например полагаю что если сервис умер более 5 раз за минуту - тут что-то капитально не так и он сломался окончательно, так что дальнейшие попытки подъема чреваты только лишней нагрузкой и шансами пригрузить систему постоянными рестартами процессов, с шансами усложнить алмину ремотный вход. Но поскольку параметр настраиваемый, каждый сам решает сколько вешать в граммах.

> Какому сервису какую цифирь выставить?  

На усмотрение админа, имхо. Что использую я в типовом случае я написал. Для каких-то сильно монструозных или специальных применений цифры наверное могут быть и иные. Если сервис только взлетает минуту, вероятно окно мониторинга стоит сделать в несколько минут минимум чтобы успешно ловить циклические рестарты чреватые большой нагрузкой на систему.В моем случае минута - с большим запасом, а 5 - порог моей толерантности к частоте падений сервисов после которого я начинаю всерьез полагать что "легче пристрелить чем прокормить".

> Не получит ли мейнтейнер пакета по мордасам за то, что выставит эти цифирки?

Не думаю. А за что? В дефолтах все-равно на всех не угодишь, а какие-то прописывать надо. По вашей логике все майнтайнеры должны дружно ходить с синей рожей. А то параметров много разных. И дефолтов для них. Безотносительно к upstart/systemd/прочим, в те или иные дефолты что-то приходится прописывать.

[del]
>> это будет слегонца перебор, потому что в конечном итоге сбои в бизнес логике - это уже
>> явно не в компетенции администратора и лечить сие должны програмеры :)))
> Речь быле не о юнит-тестах.  Апач может быть жив-живехонек, а скриптам
> отказано в каких-то ресурсах.  

Может. Однако _все_ ошибки такого класса вы _никакими_ мыслимыми тестами не поймаете. Это не я придумал. Есть такая теорема что одна программа никогда не сможет полностью и достоверно выдать заключение о том как работает другая произвольная програма. Вы хотите делать то что невозможно даже теоретически? :)

А с простым вариантом справится и простой монитор:
1) Шлем на адрес:порт вот это, это и это. Пусть "это" будет запросом к скрипту с ожидаемым результатом.
2) Проверяем что за таймаут приехал ответ ожидаемого содержания.

Это базовая проверка что демон не сдох и работает. Остальное уже явно выходит за компетенцию запускалки. Хотя-бы потому что всякие там обломы прав доступа и прочие багоглюки рестартом сервиса вообще не лечатся.

> Причем, проявиться это может не на главной странице, которая из кеша
> какого-нить достается, а когда клиент веб-магазина насобирает себе корзину
> и нажмет кнопку "я хочу дать Вам за это бабло"...

Это на грани невозможного (анализ поведения одной программой другой произвольной программы). Как бы вы ни изгалялись, а такой шанс останется всегда. Транзакции не от хорошей жизни придумали. А как раз чтобы минимизировать вред от факапов когда все навернулось в именно такой вот момент. И в любом случае это уже не компетенция запускалки: если у вас скажем место закончилось и не удается лог записать, то сколько ни перезапускай сервис, ничего не изменится. Что монитор может сделать? rm -rf / разве что? Единственный универсальный патч от всех бед :)

Ответить | Правка | Наверх | Cообщить модератору

428. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 23-Ноя-11, 22:19 
> Я никого строить не собираюсь, время само выпилит мамонтов в пользу млекопитающих.

Мамонты - тоже млекопитающие ;)  Кто кого еще выпилит.

> Я уже на себе ощутил его. С апстартом. То что раньше я делал за 2 часа копания в кривых и глюкавых скриптах писаных какими-то лабухами на коленке да еще с хардкодом имени сервиса и прочих радостей прямо в скрипте в середине оного, теперь делает конфиг на 5-7 строк который набрасывается за 5 минут из первой же нагугленой болванки (можно даже ман не читать, все и так очевидно). С точки зрения администрирования - небо и земля.

Можно пример Вашего "делания", ради чего Вы 2 часа копались?  И бага в дистрибутиве, где Вы "хардкод имени сервиса в середине" заметили.

> Например, собрал я некую прогу. Которой в репах нет. Демона, ессно. Что еще на серверах кроме них водится? Надо стало быть запустить. А вот тут опа. Потому что стартового скрипта обычно или нет совсем, или он кривой до ужаса. Никакого вам мониторинга состояния демона не умеет.

1) Написать init-скрипт - дело на несколько минут.  Обычно любая уважающая себя "прога" содержит один из вариантов такового.
2) Никакого "мониторинга состояния демона" в init-скрипте и не надо.  Почему - уже объяснял.

> Нет, просто открыл для себя nginx и lighttpd и узнал что серверу совсем не обязательно быть 16-ядерным монстром с 128Гб оперативки чтобы выдерживать целую толпу народа.

Апач тут непричем.  Просто кто-то некомпетентен, не удосужившись прочитать его документацию, вместо хавту по говноблогам про установку nginx...

> Кстати верно замечено: у меня нет цели "осилить именно апач и никак иначе". Я совершенно иными целями оперирую. Вот "показ юзеру странички форума" или там "отдача файла", желательно подешевле и пооптимальнее - это да, годная цель.

Хорошая цель.  Вот и узнайте как это умеет делать апач, прежде чем его хаять.  Да, ради этого придется и в его документацию заглянуть.  Познакомиться с тем что представляет собой схема фронтенд+бакенд, в чем ее приемущества, какие mpm удобно где использовать.

Не нужно думать, что 90% нагруженых сайтов (и как минимум - половина на апаче) _не использующих_ nginx (по статистике на сайте автора) - имеют тупоголовых админов.

> Такой жуткой архитектуры и реализации как у апача - еще поискать надо. Получился огромный и тормозной ресурсожоркий переросток

Думаю, в подобном тоне дальнейший разговор бессмысленный.  Ваше образование явно оставляет желать лучшего.  Хотите продолжить - сбавьте тон в "критике" того, о чем не имеете ни малейшего понятия.

nginx хорош, для определенных ролей и определенных типов нагрузки.  Это не значит, что разработчики апача глупы и не знают как писать сервисы.  До гибкости апача, продуманной архитектуры - nginx еще пилить и пилить.

>>> пока еще нет и такое все-таки придется закостылить.
>>> В systemd вроде как что-то такое значилось в планах.
>> Совать такое в аналог init - тупо.  Либо получите монстра, там
>> где была простенькая программа с ясным поведением.  
>
> И в каком месте тот же monit монстр? По сути это почти инит, только сделанный менее через задницу и куда более соответствующий жизненным реалиям. Остается только вопрос - а нахрен инит место в списке процессов тогда занимает, ась? Бесполезный балласт.

Для задачи _запуска сервисов в заданном порядке_ monit - это монстр.  Тут не нужны произвольные проверки по TCP/UDP, проверки по протоколам прикладного уровня и прочая.  В частности и _необходимость_ для администратора его конфигурации в каждом отдельном случае.

> Нормальные программы имеют свойство быть модульными и допускать внешние компоненты. Тот же monit не такой уж и монструоный в общем то.

Один такой уже "надопускал" внешних компонент в pulseaudio.  Процесс с PID 1 - очень важная программа, работающая с привелегиями администратора и крайне важно держать его функционал в четко определенных рамках, не обвешивая плагинами по-уши.

> Многокилобайтные простыни которые не обеспечивают даже элементарного рестарта сервиса при откровенном его падении - как-то не сильно удобно и требует кучи костылирования.

1) sysvinit это умеет.  man inittab
2) не хотите простого - настройте нормальный мониторинг (в котором "простыни", кстати, как раз пригодятся для рестарта сервиса)

>> Для того init-скрипты в любом дистрибутиве представляют собой
>> конфигурационные файлы.  
> Обычно они являют собой месиво из г-нокода, констант распиханых по всему файлу а порой и имен сервисов захардкоженых где-то в середине скрипта.

Я смотрю в /etc/init.d/ и не вижу особого говнокода.  Конкретно, проблем описанных Вами.  Пожалуйста, прекратите быть голословным.  Инит-скрипты сервисов в Debian - доступны.  Либо Вы приводите пример - либо прекращаете этот словесный понос.

>> И upstart/systemd за Вас данную задачу не решит магически.
>
> Конечно. Что так что сяк мне придется в одном случае писать конфиг, в втором писать или дорабатывать скрипты. Первое получается намного проще и быстрее и потом результат куда приятнее для глаз. Как бонус еще и система быстрее стартует.

Это _для Вас_ "проще и быстрее".  Вы настраиваете для сервиса chroot?  Очищаете дисковый кеш для mod_cache_disk, как делает init-скрипт апача?

Именно подобные вещи - нетривиальны в init-скриптах.  Остальное - при желании можно шаблонизировать.  Просто никто, кроме Вас, свои проблемы в строчках шаблонного кода не измеряет.

>>> Я бы хотел там видеть в том числе и какую-то базовую систему мониторинга живости
>>>сервисов которые он же и запускает, чуть больше чем просто отслеживание падения процесса.
>> Ее настраивать надо.  Это _сложно_ и ровно нет никакой возможности настроить
>> подобное автоматически.  
>
>Да чего там сложного? Самый тривиальный и действенный метод верификации демона сводится к всего 3 кусочкам в конфиге.
>1) Что и куда послать, по какому протоколу, etc.
>2) Что и за какой таймаут должно приехать в ответ.
>
>На основании подобной логики вполне  можно делать вывод о живости типовых сетевых демонов и их работе. Анализ всякой бизнес-логики уже не дело мониторинга, пожалуй.

Т.е. "пациент скорее жив, чем мертв", а работает ли что на самом деле у клиента - не наша забота.  Клиент сам позвонит и вежливо расскажет?

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

> Какой спам? В какой ящике? Кто и зачем будет спамить?

Ваш мониторинг.  При каждом рестарте сервиса, как минимум.  Или волшебная конфигурация по-умолчанию подразумевает, что письма Вы отправите в /dev/null?

> Опять же, настраивать ынтырпрайзный мониторинг чтобы чекать аж почтарь, хытытыпы и какойнить там днс на мелком сервачке - явный оверкилл и подобное вполне мог бы делать и тот кто их запускает. Нехай станет не только запускачем но и супервизором работы, пусть не самым забористым но покрывающим 90-95% простых случаев и осваиваемый за 2 минуты.

А отключать это счастье сколько минут Вы будете, чтобы нормальный мониторинг настроить?

> Что значит - отключать? Включаться он должен только если я изъявил желание чтобы сервис мониторился на живость.

Вроде systemd и upstart уже делают это _по-умолчанию_, нет?

> Падать не должно. Но если это какой-то автомат стоящий в чистом поле за тридевядь земель...

Тогда Вам нужно установить мониторинг.  Не для всех эта задача актуальна, поймите.  Кому-то - достаточно чтобы система просто запустила определенные скрипты при старте.

> У меня немного другой взгляд на проблему. Фэйл должен быть залогген и я должен бы получить о нем уведомление, но вот караулить постоянно как цербер?

Тогда Вам нужен полноценный мониторинг.  Какой смысл получать уведомления только о _части_ потенциальных проблем?

>> "эм" - это не число.  Это буковки.  Сколько это в цифирь?  
> По вкусу и здравому смыслу.
>> Какому сервису какую цифирь выставить?  
> На усмотрение админа, имхо.

Ну вот видите.  Мониторинг _требует_ конфигурации.  Причем - локального админа.  Мейнтейнеру пакета для сколь-либо сложного сервиса - цифирки расставить, скорее всего, не получится.

>> Не получит ли мейнтейнер пакета по мордасам за то, что выставит эти цифирки?
> Не думаю. А за что? В дефолтах все-равно на всех не угодишь, а какие-то прописывать надо.

Отключить нафиг.  Вот такой дефолт и выставят.  Может завершим блудословие и Вы циферки нарисуете?  Вы мейнтейнер пакета nginx.  Че пропишем?  Какой таймаут, как часто и куда ходить?

> Это на грани невозможного (анализ поведения одной программой другой произвольной программы). Как бы вы ни изгалялись, а такой шанс останется всегда.

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

> И в любом случае это уже не компетенция запускалки

Вот именно.  Итак, что произойдет с "функционалом мониторинга" этой запускалки - его отключат ради нормального.  Ну и нафига он тогда нужен?  Пусть запускалка - запускает и больше под ногами не мешается.  Это и делает sysvinit.

> если у вас скажем место закончилось и не удается лог записать, то сколько ни перезапускай сервис, ничего не изменится. Что монитор может сделать? rm -rf / разве что?

В случае нормального мониторинга: "То, что настроит локальный админ".  Это может быть и очистка логов, и остановка каких-то сервисов.

Ответить | Правка | К родителю #418 | Наверх | Cообщить модератору

439. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от kpykcb (ok), 24-Ноя-11, 21:23 

> Это гибкое решение.  В шелле можно вызвать утилиты, для последующего ограничения
> процесса.  И не ждать, покуда наш Песатель соизволит к systemd
> прикрутить соответствующие крутилки или сам сервис получит соответствующие ключи для командной
> строки...

Для тех, кто сам дажее пробовал инетересоваться, systemd совместим с классическим init это раз и я вообще не вижу сложности научить какую либо программу запускать шелл-скриты (точнее запускать интерпретатор, кот. их выполнит).

Потому не плачьте, ваши костыли останутся при вас.

Ответить | Правка | К родителю #388 | Наверх | Cообщить модератору

440. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от myhand (ok), 24-Ноя-11, 21:44 
>> Это гибкое решение.  В шелле можно вызвать утилиты, для последующего ограничения
>> процесса.  И не ждать, покуда наш Песатель соизволит к systemd
>> прикрутить соответствующие крутилки или сам сервис получит соответствующие ключи для командной
>> строки...
>
>Для тех, кто сам дажее пробовал инетересоваться, systemd совместим с классическим init это раз и я вообще не вижу сложности научить какую либо программу запускать шелл-скриты (точнее запускать интерпретатор, кот. их выполнит).

Да мы как раз и не плачем...  Если бы они поломали совместимость совсем (а они таки немного поломали) - эта поделка никому бы не сдалась вообще.

Другое дело, что необходимость в этих скриптах остается в реальности.  Так что Поттеринг, строго говоря, тупо врет про "Shell-free bootup".  Они перекочуют в ExecStartPre/Post.   Идите, расскажите как Вы для постфикса сделаете chroot без запуска скриптов (не путать это с заданием RootDirectory)...

Во-вторых, как я уже писал - к чему вообще эти тонны LimitDATA и проч. крутилок в конфиге сервиса systemd?  Поттеринг когда-нибудь остановится?  Или с выходом _каждой_ новой возможности ограничивать процессы в новом релизе ядра - будут добавляться новый параметр в ублюдочный INI-конфиг?

В sysvinit все четко: вот это мы делаем, а вот все остальное - нет.  А здесь - bloatware на C без четко очерченного функционала.

Ответить | Правка | Наверх | Cообщить модератору

394. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Andrew Kolchoogin (?), 22-Ноя-11, 19:12 
> Или на кой он нужен если ничего не умеет?

Э, стоять!

А svc.startd и svc.admind кто пускать будет, я, что ли?!

:)))

Ответить | Правка | К родителю #381 | Наверх | Cообщить модератору

397. "Разработчики systemd представили Journal, замену системе sys..."  +/
Сообщение от Аноним (-), 22-Ноя-11, 20:22 
> А svc.startd и svc.admind кто пускать будет, я, что ли?!

Первую программу запускает кёрнел. Вот только ниоткуда не следует что это должен быть sys v init с его каменными топорами.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру