LINUX.ORG.RU
ФорумTalks

давайте разберемся, так ли плох systemd?

 


0

1

Я тоже, как и многие тут, попал под истерию ненависти к systemd. Но все таки решил узнать поподробнее, что же это.

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

Update 1: пока из трех страниц треда так и не была указана киллер-фича systemd, окромя более быстрой загрузки. Если кто такую киллер-фичу знает (то есть такое, что раньше не было возможно/было возможно, но трудно), милости просим в тред.

Итоги:

Очевидные преимущества:

быстрая загрузка

systemd - это аналог xinetd, только для системных сервисов.

решение проблемы отдельного /usr и других подобных поблем с разделами на корню

решение проблемы "убегания" демонов после двойного форка с помощью cgroups.

Очевидные недостатки:

для родительского процесса с pid 1  слишком сложная => ненадежная программа.

linux only

бинарные логи (хоть и поправимо в теории)
★★☆☆☆

Последнее исправление: dikiy (всего исправлений: 6)
Ответ на: комментарий от Lighting

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

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

Впрочем, ключи verbose и debug и сейчас не у всех init-скриптов есть.

В нормальной системе инициализации их можно засунуть самому за 10 секунд.

Так зачем тебе решать то, что уже решили за тебя мейнтейнеры?

Это издёвка такая, да?

Что, в альте тоже скрипты на баше?

Shocked? Me too!

AX ★★★★★
()
Ответ на: комментарий от dikiy

И чем же эти задачи узкоспециализированы?

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

gh0stwizard ★★★★★
()

Многим аналитикам уровня ЛОРа трудно привыкнуть к мысли, что навести порядок и облегчить жизнь мейнтейнерам, разработчикам - это тоже улучшение.

Кроме того, очень негибкое мышление. Скажем, systemd умеет запускать службы с помощью скомпиленных программ, а не конфигов или скриптов. Какова реакция аналитика? Нет, он не догадается, что можно переименовать apache-run в __apache-run и написать вместо него свой скрипт. Что можно поправить apache.service. Нет, он скажет - нинужно кококо у миня всё ниработает поттеринга киллера нанять бесплатно без смс. Или другой пример - /usr на отдельном разделе. Systemd умеет это изначально, но где ж аналитикам догадаться, что в силу асинхронности загрузки, что и является главной фичей systemd, следует явно указать оному сперва /usr примонтировать, а потом дальше рыпаться. Нет, у них опять - нинужно кококо и далее по списку.

quiet_readonly ★★★★
()
Ответ на: комментарий от Deleted

Проблемы?

Да, у тебя.

Это ты так тонко нейтрализовал свой собственный аргумент?

Это я так тонко намекнул, что примитивная программа и программа на примитивном языке — это «несколько» разные вещи. А впрочем, откуда поттерингофанатам об этом знать…

AX ★★★★★
()
Ответ на: комментарий от AX

Это будут проблемы тех, кто поставил iptables после mysql в rc.conf.

Это проблемы головного мозга. Ты уж глянь как рекомендует debian, ну и сам пораскинь мозгами :)

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

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

ну и чем же баш плох для этого?

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от quiet_readonly

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

/0

Многим аналитикам уровня ЛОРа
Нет, он не догадается, что можно переименовать apache-run в __apache-run

А вот и их типичный представитель. :) Сколько не пиши про поиск исходников и правку существующих скриптов, всё равно будет «кококо напиши сам тебе никто не запрещает»… Между прочим, прежде написать скрипт, желательно узнать, как это реализовано мейнтейнерами твоего дистра.

AX ★★★★★
()
Ответ на: комментарий от dikiy

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

Там есть возможность настройки окружения (man systemd.exec)

kss ★★★★★
()
Ответ на: комментарий от gh0stwizard

Ты уж глянь как рекомендует debian, ну и сам пораскинь мозгами :)

Ещё раз, как выглядят включение alsa и iptables в Ъ-стиле?

AX ★★★★★
()
Ответ на: комментарий от Siado

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

systemd видел только на картинке?

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от Quasar

>Если кто-то только так писать и умеет

Телепаты традиционно прочитали то, чего не было написано. Понимаю :}

Deleted
()
Ответ на: комментарий от Vovka-Korovka

он не вместо init стоит. Поэтому ничего страшного не будет.

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от Vovka-Korovka

А если bash/dash упадет? Не беспокоит?

он не исполняется с pid 1. Пусть себе хоть обпадается, максимум чего можно от этого ожидать - нестартовавший сервис. Один! А не вся система, упавшая вдребезги пополам.

pekmop1024 ★★★★★
()
Ответ на: комментарий от AX

>Да, у тебя.
Да ты просто не умеешь читать :3

>Это я так тонко намекнул, что примитивная программа и программа на примитивном языке — это «несколько» разные вещи.
Т.е. в переводе — сменил тему разговора. Молодец, чо :}

Deleted
()
Ответ на: комментарий от Deleted

Руками лезть в скрипты инициализации это задача разрабов

А не админов?

а они могут и в исходники посмотреть.

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

И, кстати, баш (шелл вообще) изначально позиционировался, как простой и удобный «клей» для компоновки бинарников. И лепить ему ярлык «говноязыка» совсем уж некорректно. Я тебя считал более умным человеком.

DeVliegendeHollander ★★
()
Ответ на: комментарий от Quasar

Вот тот же ALT Linux. Просто работает. И при этом ничего там не урезано. Без systemd просто работает и не глючит.

Альт и с systemd уже работает. Поначалу конечно количество граблей было большое, но теперь жить можно. Все десктопы p7 будут уже на systemd.

Vovka-Korovka ★★★★★
()

Если кто такую киллер-фичу знает (то есть такое, что раньше не было возможно/было возможно, но трудно), милости просим в тред.

Про то, что systemd создаёт отдельную группу в cgroups для каждого сервиса, запускающего какой-то демон, уже говорили? Это обеспечивает надёжное управление демонами, потому что даже если он форкнется несколько раз, он не убежит из своей группы. Для остановки сервиса нужно просто прибить все процессы из его группы. Раньше же такого механизма нигде не было, и приходилось полагаться на pid-файлы, создаваемые самим демоном, что очень ненадёжно, потому что в теории демон может записать туда лажу или его может прибить пользователь и запустить новый процесс с тем же pid, а если pid-файлы создавать извне, без участия демона, то он может форкнуться и поменять pid. Поэтому со старыми костылями инициализации нужно было для каждого демона писать свои костыли для убивания его. Systemd же никак не зависит он pid-файлов и не требует таких костылей, а разруливает всё сам, независимо от того, сколько раз форкается процесс и делает ли он это вообще.

gentoo_root ★★★★★
()
Ответ на: комментарий от DeVliegendeHollander

>>Руками лезть в скрипты инициализации это задача разрабов
>А не админов?
Админы, которым надо редактировать __скрипты__ инициализации? Да в пень такую систему инициализации.

>И, кстати, баш (шелл вообще) изначально позиционировался, как простой и удобный «клей» для компоновки бинарников. И лепить ему ярлык «говноязыка» совсем уж некорректно.
А пхп изначально был языком для хоумпаг. Однако…

>Я тебя считал более умным человеком.
Сколько вас расплодилось. Считайте про себя, ну же.

Deleted
()
Ответ на: комментарий от dikiy

ну и чем же баш плох для этого?

Тем, что все кричат будто такое решение это стандарт. Это легкий путь, но не правильный. Вам не хотелось бы иметь программу, которая пишется один раз и навсегда, которая позволяет легко манипулировать всеми опциями почти всех известных демонов, не влезая при этом ни в исходники самих скриптов, ни открывая man myprogram и все через GUI (в том числе консольные обертки) ? Наверное нет, т.к. вы это себе даже не представляете, что такое можно написать на bash'е, а следовательно, это будто бы фантастика. Вам обязательно надо залезать в любимый скриптик и дописывать одни и теже строчки из года в год и, каждый раз наслаждаться будто вы покорили Эверест :)

gh0stwizard ★★★★★
()
Ответ на: комментарий от tailgunner

что переделывали?

Это проект, в котором содержатся юнит-файлы для (часто используемых) приложений, которые пока не имеют своих. По мере добавления их в сами приложения, юниты удаляют из systemd-arch-units. Ну и если найдут ошибки у себя, то исправляют.

kss ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Когда я его ставил два года назад там сегфолтился apt-get. Когда я его ставил год назад там сегфолтился apt-get.

Ты явно что-то делал не так.

Vovka-Korovka ★★★★★
()

ИМХО бóльшая часть ненависти исходит не из-за убогости systemd, а из-за репутации Леннарта и попытки интеграции всего и вся до того как сам продукт стал не то что стабильным, но хотя бы работоспособным.

Хотя systemd я одобряю, всё же непонятно, почему разработку доверили автору сомнительной нужности avahi и эталонного костыля PulseAudio.

sophus_solus
()
Ответ на: комментарий от Deleted

Да ты просто не умеешь читать :3

Да, я не умею читать язык Мумбо-Юмбо. ☹

Т.е. в переводе — сменил тему разговора.

Напротив, я ясно показал несостоятельность твоей аргументации!

AX ★★★★★
()
Ответ на: комментарий от AX

Alsa по-хорошему вообще пропатчить, чтобы сама научилась перечитывать свой файл состояний. А вот iptables пихают в pre-up.d, pre-down.d в /etc/interfaces.

gh0stwizard ★★★★★
()
Ответ на: комментарий от gentoo_root

systemd создаёт отдельную группу в cgroups для каждого сервиса, запускающего какой-то демон, уже говорили?

Посмотри в каталог systemd/src. К полезной фиче создания cgroups там прилагаются тонны мусора.

tailgunner ★★★★★
()
Ответ на: комментарий от AX

Очень сложный конфиг на systemd.

Люди, которые залихватски требуют исходников пускающей апач утилиты, напоминают мне то Дениску Попова, который думал переписать ядро и офисный пакет, то просто фантазёра, который в своих влажных фантазиях по 10 раз на дню отлаживает ядро прямо на ходу, анализируя hex-дампы.

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

quiet_readonly ★★★★
()
Ответ на: комментарий от Deleted

Сколько вас расплодилось. Считайте про себя, ну же.

Ок, я тебя понял. Начиная с этого момента, буду «считать про себя».

DeVliegendeHollander ★★
()
Ответ на: комментарий от gh0stwizard

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

один раз и навсегда ортогонально к «легко манипулировать всеми опциями почти всех известных демонов».

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

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

все через GUI

GUI еще только не хватало, лол.

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от quiet_readonly

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

Фантазии это для тебя. Для других (меня, например) - это реальность.

tailgunner ★★★★★
()
Ответ на: комментарий от Deleted

Даже если не брать в расчет того факта, что этому «дядьке» 23 года - аргументация там на уровне «я просто не понял, в чем состоит работа сисадмина». И системд - ниразу не панацея, потому что если разработчик софтины не осилил писать вменяемые логи в syslog, он точно так же не осилит и journald.

leave ★★★★★
()
Ответ на: комментарий от quiet_readonly

Когда проблемы всплывают в недрах системы, вы их не исправите. И нет никакой разницы, bash там, python или компилируемый язык.

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

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от dikiy

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

Лол, 21 век, 20+ лет системе init.d, большинству скриптов в нем по еще столько же лет. Миллионы человеко-часов, а ты все еще лезешь туда. Да, это самый верный путь. Кого волнует, сколько минут ты тратишь на то, что делалось для других людей? Никого, продолжай дальше тратить время из года в год, от 10 минут в месяц ты не постареешь/поумнеешь, да. ЛОЛ.

GUI еще только не хватало, лол.

Еще не хватало Си/Qt/GTK, лол. Есть же ASM! Как-то не весело все это в 21 веке...

gh0stwizard ★★★★★
()
Ответ на: комментарий от AX

ls /usr/lib/systemd/systemd-*

Там значительная часть (если не всё) — это то, что и так (без системд) делают бинарниками, а не скриптами: journald пресловутый (syslog у тебя тоже не скрипт, а бинарник), readahead (ты хоть раз видел реализацию readahead'а на скриптах?), udev, logind, который, насколько помню замена вполне себе бинарному consolekit и тд и тп.

kss ★★★★★
()
Ответ на: комментарий от uin

А как там дела с PulseAudio - оно хоть работает вообще?

Ни разу не имел проблем с пульсой.

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от AX

>Да, я не умею читать язык Мумбо-Юмбо. ☹
Зря ты так о родном языке.

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

Deleted
()
Ответ на: комментарий от sophus_solus

всё же непонятно, почему разработку доверили автору

Звучит примерно как «все же непонятно, почему разработку Linux доверили Линусу Торвальдсу».

kss ★★★★★
()
Ответ на: комментарий от DeVliegendeHollander

Для тех кто в танке: это означало «о том и речь, капитан».

Deleted
()
Ответ на: комментарий от gh0stwizard

Лол, 21 век, 20+ лет системе init.d, большинству скриптов в нем по еще столько же лет. Миллионы человеко-часов, а ты все еще лезешь туда.

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

GUI еще только не хватало, лол.

Еще не хватало Си/Qt/GTK, лол. Есть же ASM! Как-то не весело все это в 21 веке...

ты хоть на чем-то из перечисленного писать умеешь?

А по-теме: гуи для настройки стратапа пригоден максимум в рамках, как в убунту сделано :)

dikiy ★★☆☆☆
() автор топика
Ответ на: комментарий от gh0stwizard

А вот iptables пихают в pre-up.d, pre-down.d в /etc/interfaces.

Ох… Т.е. по сути оно запускается через /etc/init.d/networking и остановить iptables без остановки всей сети (кроме как вручную) невозможно?

AX ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.