LINUX.ORG.RU
ФорумTalks

[ЖЖ] [lennart] [systemd] [debian] Я установил его

 , ,


0

1

У меня Debian с обычным sysvinit. Запускается оно достаточно долго.

Сегодня в связи с тредом про вброс Леннарта в гугле+ решил попробовать поставить systemd в debian wheezy. Раньше сталкивался с ним на всяких федорках, но не особо впечатлило.

HowTo:

aptitude install systemd
И в /etc/default/grub прописать
GRUB_CMDLINE_LINUX="init=/bin/systemd"
И сделать
sudo -i update-grub2

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

Дискасс.

PS. Расстраивает только то, что труЪ-системд-скрипты есть только для нескольких сервисов, т.е., из всех вкусностей systemd задействуется только параллельная загрузка.

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

От того, что я отредактирую /etc/inittab, подсунув init'у другие скрипты BSD-стиля, SysVinit не станет BSD-init'ом.

Предлагаю подумать: если есть «другие скрипты BSD-стиля», то как же называются «менее другие» скрипты?

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

То есть, про /etc/rc.d/udev restart вы не слышали, да?

Я арч последний раз видел давно; udev уже вынули в отдельный скрипт? Раньше udev поднимался прямо из /etc/rc.sysinit, теперь, похоже, там сильно всё изменилось — вот части кода типа установки шрифта ещё перенесли в /etc/rc.d/functions (но, блин, почему не в /etc/rc.d/consolefont?! зачем каждому скрипту инклудить функцию set_consolefont, которая вызывается ровно один раз при загрузке?). Но тем не менее, /etc/rc.sysinit всё ещё выполняет кучу других разных функций (udev оказался устаревшим примером). То, что их оттуда постепенно вынимают — хорошо. Так и до Linux-стиля скриптов скоро дойдут.

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

/usr на отдельном разделе этой поделке видимо до сих пор не по зубам.

Да, к сожалению, оно такое не умеет и не собирается уметь. На своём компе я скопировал libdbus-1.so в /lib, а в /usr/lib запилил симлинк. Лично я не вижу смысла отделять /usr в отдельный раздел. Раньше я его монтировал в read-only, но оказалось слишком геморно его перемонтировать при эмержах. Если уж так хочется, можно и / смонтировать в read-only, а больше ни для чего отдельный раздел для /usr не нужен.

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

4.2. by default оно и далее будет грузить sysvinit. Можно конечно aptitude install systemd-sysv со сносом sysvinit, но я не рискнул.

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

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

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

Мы уже говорили на эту тему. systemd — это программа из разряда емакса. Нам не нужен для загрузки системы такой «емакс».

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

Вот так вот и заканчивается, не успев начаться, знакомство с «хорошей» вещью. И слава тебе господи.

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

Отлично, так давайте и разнесём их по разным скриптам. Вы готовы этим заниматься? Нет?

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

gentoo_root ★★★★★
()

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

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

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

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

Как высказывание «Сервисы для systemd пишутся на минуту — там обычно строк 4-5. Это даже проще, чем написать init-скрипт» соотносится с истиной не очень понятно.

Не нужно писать в каждом скрипте лишний код типа объявлений функций, LSB-заголовка, «switch «$1»», сообщений об ошибках, их обработчиков и т.п.

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

Не юзать отдельный /usr, это же очевидно.

Проблема решается только грязным хаком в виде libdbus вне /usr, но он настолько грязный, что ни один дистростроитель так не поступит.

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

какое отношение крыса к говно-системе имеет? о_О

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

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

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

То есть, про /etc/rc.d/devd restart во Фре вы не слышали, да?

% /etc/rc.d/devd restart
Stopping devd.
Waiting for PIDS: 1374.
Starting devd.

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

но, блин, почему не в /etc/rc.d/consolefont?!

а зачем consolefont менять туда-сюда?

так ведь можно дойти до того, что вообще любую мало-мальски значимую фичу (установку флага какого-нибудь) тащить в /etc/rc.d.

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

Предлагаю подумать: если есть «другие скрипты BSD-стиля», то как же называются «менее другие» скрипты?

Я немного не это имел в виду; наверное, не совсем понятно написал. Я от том, что вот есть 2 набора скриптов: в одном каталоге Linux-style, в другом BSD-style. В /etc/inittab прописано что-то типа «rc::sysinit:/etc/linux-style-scripts/rc». После этого я беру и меняю эту строку на «rc::sysinit:/etc/bsd-style-scripts/rc» и перезагружаюсь. Теперь у меня уже не Linux-style скрипты, а BSD-style скрипты, но init как был, так и остался SysVinit. От редактирования /etc/inittab он не стал BSD-init'ом. От того, что SysVinit выполняет BSD-style скрипты, он не стал BSD-init'ом — и в арче именно и сделано.

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

Выключаю именно чтобы не шумел ночью. На электроенергию пофиг.

Как дуалбутчик, никогда не делаю хибернейт на ночь :) Ибо опасно, если я вместо расхибернейта бутнусь в винду :)

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

Не юзаю всякие хибернейты у меня 24/7 дома, пока не выключают свет.

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

То есть, про /etc/rc.d/devd restart во Фре вы не слышали, да?

Во FreeBSD я никогда не работал, я говорю про то, что видел в арче. И когда я это видел в арче, там нельзя было сделать /etc/rc.d/udev restart, потому что запуск и настройка udevd были прямо в /etc/rc.sysinit. Сейчас уже именно это можно сделать (поэтому именно udev — плохой пример), но те задачи, которые выполняет сам /etc/rc.sysinit, отдельной стандартизированной командой типа /etc/rc.d/$SERVICE restart не выполняются. Например, аналогом обычного /etc/init.d/consolefont restart в арче является «( . /etc/rc.d/functions && set_consolefont; )».

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

То, что их оттуда постепенно вынимают — хорошо.

кажется, их «вынимают» не постепенно, а только тогда, когда нужно.

есть такая хорошая дока от 37signals, называется Getting Real. Гуглится. Есть в русском варианте.

Так вот одно из основных положений Getting Real — фичи нужно добавлять только тогда, когда они РЕАЛЬНО нужны. Например, не нужно постоянно мониторить багтрекер, чтобы выискивать, что же хотят пользователи. Если уж пользователи чего-то реально хотят, то они тебя задолбают этим. Будут писать тысячи одинаковых тикетов в багтрекер, даже если им никто не отвечает, будут звонить тебе на мобильник, писать на почту, ругаться в блогах, бить тебя ногами в темных подворотнях. Ты сам поймешь что фича реально нужна — иначе тебя сметет лавина доброжелателей и недовольных.

Вопрос в чем. Сколько gentoo_root'ов и stevejobs'ов нужно, и что им нужно сделать, чтобы мантейнеры initscripts (а это лично Аарончик и Том) сочли вынос consolefont'а достаточно важным, чтобы вынести его в /etc/rc.d?
Наверное, можно даже как-то оценить, сколько стонов было по поводу выноса consolefont'а в отдельную функцию, раз уж это уже свершилось и все шаги записаны.

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

а зачем consolefont менять туда-сюда?

Шрифт поменять, не?

Только не надо отвечать, что никто не меняет шрифты чаще 1 раза в год, а 1 раз в год можно и полностью перезагрузиться или потратить 10 минут на изучение 281 строки /etc/rc.sysinit и грепание по ФС в поисках реализации set_consolefont вместо ввода одной более-менее одинаковой везде команды /etc/init.d/consolefont restart.

так ведь можно дойти до того, что вообще любую мало-мальски значимую фичу (установку флага какого-нибудь) тащить в /etc/rc.d.

Ну так во всех дистрибутивах так и сделано: отдельные скрипты для fsck, mount-root, mount-local, mount-net, net-lo, net-*, hostname, hwclock и т.п., и это удобно.

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

Столько гемороя ради призрачного эффекта в виде плацебо-ускорения?! Нет уж, скажем «Нет!» systemd и поттерингу.

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

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

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

Только не надо отвечать,

ты крутой телепат, правда, всё правильно угадал :)

и это удобно.

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

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

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

не вижу там ничего связанное с системой инициализации

Статью по ссылке не читал, но сразу бросилась в глаза команда «init 1».

// Там ещё не помещается длинная строка «Оно может продолжаться достаточно долго, поэтому терпеливо ждем и ни в коем случае не прерываем этот процесс (иначе потеряе». Ширина моего экрана — 1024 пикселя, текст вылазит за серый блок на тёмно-серый фон и за границу страницы, а горизонтальный скролл не появляется. Браузер — хромиум.

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

превращает систему в помойку.

Как раз помойка — это когда разные задачи реализованы в одном скрипте вперемешку.

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

Тем не менее, большинство дистрибутивов сделаны именно так.

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

Хм, у меня при установке обычного systemd удаляется sysvinit.

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

А как e4rat задействовать с systemd , чет пробовал, нифига не получалось

Так они никак не связанны же. По манам сделал e4rat, добавил в GRUB_CMDLINE_LINUX_DEFAULT=«init=/sbin/e4rat-preload», поставил systemd, и все.

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

Нет, я почитатель стандартизации и инфраструктуры.

Ну, а Поттеринг няшка, как я сегодня уже говорил, я бы к нему в укешки пошел. Но это неважно :3

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

Интересно, что арчу мешает использовать openrc?

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

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

никому нельзя верить:

Part of BSD's heritage is the simple init framework that it has incorporated. The main difference between a BSD init and a SysV init is that Arch's BSD-style init uses a single line in a single file, /etc/rc.conf, to point to scripts within a single directory, /etc/rc.d/, for all system services, regardless of runlevel.

A SysV init, on the other hand, would use a system of multiple directories (usually 7 by default), one for each runlevel: /etc/rc.0,1,2,3,4,5,6. Each directory contains a gratuitous number of symlinks — one for each service. Each symlink points to a corresponding script in the /etc/init.d/ directory. Needless to say, the SysV method is more complex, as (by default) dozens of symlinks reside under each /etc/rc.0,1,2,3,4,5,6 directory in addition to all of the scripts under /etc/init.d/. Keeping in line with its simple philosophy, Arch Linux uses the BSD-style init.

Откуда-то из арчвики.

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

Интересно, что арчу мешает использовать openrc?

Мейнтейнеры арча.

И, кстати, было бы интересно сравнить скорость загрузки у openrc и systemd.

Последний, скорее всё-таки выиграет, но openrc, на сколько помню, был очень даже неплох.

OpenRC — унылое тормозное г-но. Я на коленке когда-то наклепал на баше init-скрипты, которые в 1.5 раза были быстрее OpenRC. К тому же, в OpenRC есть такие неприятные моменты, как поднятие сети в ранлевеле boot. И в default он не переключится, пока не поднимется сеть! Может, уже и починили, но несколько месяцев назад такая проблема была. Если же net.* перебросить руками в default, отключить hotplug, то вылезет куча проблем с зависимостями — в init-скриптах для демонов, работающих с сетью, не прописана зависимость need net, потому что они предполагают, что запускаются в default, а сеть уже поднялась в boot. И это ожидание, пока поднимется сеть, заметно тормозит загрузку с OpenRC. Но даже если не использовать OpenRC для настройки сети (заменить, например, NetworkManager'ом), то работает он вовсе не шустро. Нетбук он грузил за 25-30 секунд до начала запуска gdm, когда systemd запускает gdm уже на 11-ой, а на 20-ой уже можно логиниться.

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

Тогда понятно, откуда пошло это выражение «BSD-style init». В арчвики решили не сильно заморачиваться с терминологией. Видимо, здесь под словом init они подразумевают не демон /sbin/init, а всю систему инициализации вместе со скриптами. Скрипты там таки BSD-style, но вот демон SysVinit. Демон BSD-init работает совсем по-другому, нежели SysVinit, — у него нет ранлевелов и /etc/inittab.

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