LINUX.ORG.RU

Замена init в Debian


0

0

Runit -- переписанная с нуля версия SysV init, кроме существенного сокращения времени загрузки за счёт параллельного запуска сервисов (с 2 мин. 54 сек. до 55 сек. у автора статьи) обладающая ещё целым рядом преимуществ, в числе которых более надёжная система управления сервисами через интерфейс sv/runsv.

Подробнее о преимуществах runit: http://smarden.org/runit/benefits.html

>>> Подробности

★★★

Проверено: Shaman007 ()

наши велосипеды - самые велосипедистые в мире? :)

geek ★★★
()

> (с 2 мин. 54 сек. до 55 сек. у автора статьи)

Сейчас придут генто-слаководы и расскажут как у них за 20 секунд всее грзицца вместе с КДЕ :)

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

>Сейчас придут генто-слаководы и расскажут как у них за 20 секунд всее грзицца

ты знал! :)

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

Ну я могу сказать, что в Gentoo одна из самых удобных систем init-скриптов (rcorder-like, или по-другому Dependancy driven). В Дебиане такая система появится только в Etch-е, как я понял. Мне ещё в других дистрибутивах не нравится несколько ран-левелов, зачем? Было бы как в Gentoo: boot, default и nonetwork.

dotcoder ★★★★★
()

> Замена init в Debian

Блин, даже оригинальная статья так не называется! Там просто пишут о том _как_ это делали в Debian! Не надо пугать людей и заниматься выдумками!

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

> интересно, почему не init-ng

вроде как на runit проще заменить

anonymous
()

Есть гораздо более простая, более надёжная и более быстрая система
загрузки сервисов - daemontools. Это микс классического init c
параллельной загрузкой сервисов и их супервизированием.

Runit сделан по мотивам daemontools, но мне показалось, что развитие
функциональности пошло в ущерб управляемости и принципов KISS.

Я сам 5 лет уже делаю все установки линукс с использованием daemontools.
Скорость загрузки до X'ов в пределах 30 сек. Без X'ов может доходить до
12 секунд.

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

init-ng - это шлак. Те же яйца, только вид сбоку. Ни чего интересного
оно не даёт.

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

>В генту можно сделать большк ранлэвэлов.

Можно, что тоже очень удобно. Добавляешь в параметры ведра softlevel=your_favorite_runlevel и оппаньки. Причем все они -- суть 3й runlevel (с точки зрения init).

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

>Сейчас придут генто-слаководы и расскажут как у них за 20 секунд всее грзицца вместе с КДЕ :)

не первый раз замечаю что ты флейм провоцируешь. вопрос - что такое с тобой страшное/отвратительное сотворили гентушники?

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

>у Миши все за 8!!! :)

просто Мишу сплющило локальной флуктуацией гравитационного поля и для него секунды длинее раз в 10 :)

geek ★★★
()

Объясните мне тайный смысл ранлевелов?

А то я вижу только разницу между ранлевелами как "с иксами" и "без иксов". Про уровни 0 и 6 - не надо. Запустить скрипты при старте и шатдауне можно любым другим способом. Без ранлевелов.

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

В теории ранлевелы - это всего лишь шаблоны загрузки, говоря по
простому... Для каждого ранлевела можно выбрать свой набор загружаемых
сервисов. К примеру, номер 3 - домашний десктоп - ничего лишнего, только
xdm, номер 4 - окружение для разработки - грузим mysql, postgresql, cvsd
и прочее.

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

> Объясните мне тайный смысл ранлевелов? А то я вижу только разницу между ранлевелами как "с иксами" и "без иксов". Про уровни 0 и 6 - не надо. Запустить скрипты при старте и шатдауне можно любым другим способом. Без ранлевелов.

Если тебе править скрипты проще, чем пару симлинков создать/удалить - никто не запрещает делать так :)

Napkin
()

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

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

>Объясните мне тайный смысл ранлевелов?

При классической SysV-загрузке сам не знаю. А в gentoo все очень просто. Представь себе, что у тебя есть ноут. Ну напряги, пожалуйста, воображение. Так вот, с этим ноутом ты таскаешься на работу (допустим, начальство это позволяет). Там ты благополучно втыкаешь его в сетку. Дома у тебя сетки нет, следовательно тебе не надо поднимать интерфейсы и запускать n-е число демонов. Что можно сделать? Добавить в меню grub'a еще один пункт, который будет бутить систему с softlevel=nonetwork или твоим, руками сделанном, softlevel=sweet_home. Вариантов множество...

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

> Есть гораздо более простая, более надёжная и более быстрая система загрузки сервисов - daemontools. Это микс классического init c параллельной загрузкой сервисов и их супервизированием.

А где это?

Google выдает только - http://www.daemon-tools.cc

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

а я вообще не понимаю смысла в всей этой х?рне...

ЗЫ слака рулит...
ЗЗЫ мне пох сколько грузится... я не выключаю...

anonymous
()

Блин научитись читать это не замена а АЛТЕРНАТИВА, ну и слав обогу что в дебиане умнэ люди всакое дермо как default не ставят

The runit-run Debian package is an attempt to integrate runit into Debian GNU/Linux as an alternative to the default sysvinit

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

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

Теорию я как раз знаю.

>Если тебе править скрипты проще, чем пару симлинков создать/удалить - никто не запрещает делать так :)

А это тут при чём? Я ж не сравниваю BSD/SysV

>Представь себе, что у тебя есть ноут.

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

ps: Всё равно подавляющее большинство пользуются только двумя уровнями запуска (да и отличаются они всего одним пунктом - дисплейным менеджером)

Я так понял, в генту как раз сократили число уровней до минимума?

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

> а я вообще не понимаю смысла в всей этой х?рне...

Это, во-первых, "наш ответ Чемберлену" (т.е. Windows XP): чистая политика. А во-вторых, чупачупсы иначе не поймут. Их же винда приучила без конца выключаться и перегружаться.

anonymous
()

Шаман, ПРОВЕРЯТЬ надо новости! Проверять! А не подтверждать по наличию по ссылке слов "Debian" и "runit"!

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

>Есть гораздо более простая, более надёжная и более быстрая система
>загрузки сервисов - daemontools. Это микс классического init c
>параллельной загрузкой сервисов и их супервизированием.

О да - еще одно творение безумного доктора Бернштайна !
От qmail тут еще народ не отошел а вы еще и daemontools приперли.....

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

Using suspend с отключением вентиляторов и программной эмуляцией камня.

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

>Я так понял, в генту как раз сократили число уровней до минимума?

Да, там только три уровня запуска: boot, default и nonetwork. При желании можно добавить ещё уровни (хотя не вижу необходимости).

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

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

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

> Объясните мне тайный смысл ранлевелов?

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

А стандартное определение runlevel'а - набор запущенных служб.

> Про уровни 0 и 6 - не надо. Запустить скрипты при старте и шатдауне можно любым другим способом. Без ранлевелов.

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

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

>>В генту можно сделать большк ранлэвэлов.
>
>В курсе, только зачем, в большинстве случаев?

На серверах встречал, например, следующие (живой пример):
1. для обслуживания оборудования
2. для запуска/обслуживания системы без запуска DB
3. для полуавтоматического восстановления системы из backup с изменениями настроек системы
4. для анализа системы в случае неизвестных нештатных ситуаций + предположений о несанкционированном доступе

Можно, конечно, обойтись и "штатными" runlevels (как, впрочем, и без них вообще), но такой подход позволяет хорошо разделить функциональность и понизить требования к процедурам обслуживания.
Особенно то важно для business и mission critical систем работающих в режиме близком к 27x7 и сменным персоналом.

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

>Есть гораздо более простая, более надёжная и более быстрая система загрузки сервисов - daemontools. Это микс классического init c параллельной загрузкой сервисов и их супервизированием.

А как быть с зависимостями сервисов?

ИМХО, идеальный вариант такой:

1. При помощи init запускать в начале те сервисы, которые требуют одинарной загрузки: firewall, ntp client, сеть, и т.п.

2. Важные сервисы запускать и супервайзить при помощи, например, daemontools.

P.S. И всё равно, в Gentoo это реализовано наиболее элегантно :)

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=4

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

>На серверах встречал, например, следующие (живой пример): >1. для обслуживания оборудования >2. для запуска/обслуживания системы без запуска DB >3. для полуавтоматического восстановления системы из backup с >изменениями настроек системы >4. для анализа системы в случае неизвестных нештатных ситуаций + >предположений о несанкционированном доступе

>Можно, конечно, обойтись и "штатными" runlevels (как, впрочем, и без >них вообще), но такой подход позволяет хорошо разделить >функциональность и понизить требования к процедурам обслуживания. >Особенно то важно для business и mission critical систем работающих в >режиме близком к 27x7 и сменным персоналом.

Речь не идёт о том, что где-то ранлеволов много, а где-то их не хватает :) (аля: "Оказывается в Дженту ранлевелов всего два, а в Дебиан их целых 6 штук - поэтому Дженту или Дебиан - сакс!").

Речь о другом, о начальной стадии свежеустановленной системы. Я - сторонник минимализма: на свежеустановленной системе не должны быть запущены сервисы, не должно быть лишнего и ненужного софта, не должно быть левых учётных записей, и т.д. То есть, всё это должно появляться по ходу работы.

Мне бы, например, хотелось, чтобы система шла с минимальным количеством ранлевелов (скажем, boot, default, nonetwork), а потом, если мне необходимо я сам добавлю нужные мне ранлевелы, будь то для бэкапа или для восстановления системы.

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

> О да - еще одно творение безумного доктора Бернштайна !

Почему безумного? Мыслящего иначе - это да. Безумцы, IMHO, это те,
кто годами и десятилетиями копируют неправильные или неоптимальные решения.

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

> А как быть с зависимостями сервисов?

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

Для тупых сервисов (типа nfsd) легко пишется обход этой проблемы в
стартовом скрипте.

> P.S. И всё равно, в Gentoo это реализовано наиболее элегантно :)

С точки зрения пионеров старшего отряда - да ;)

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

(раз уж всё равно флейм пошёл)

>А я дома всетаки выключаю. Писюк. Отучился я уже под вентиляторы спать.

писюк с вентиляторами. внушает.

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

>Мне бы, например, хотелось, чтобы система шла с минимальным количеством ранлевелов (скажем, boot, default, nonetwork), а потом, если мне необходимо я сам добавлю нужные мне ранлевелы, будь то для бэкапа или для восстановления системы.

Я примерно той же точки зрения. Причём я даже не понимаю что такое уровень boot. Что - после исполнения всего, что на boot он переходит на уровень default?

Я понимаю должен быть скрипт, который исполняется при каждой загрузке системы (монтирование /proc /sys (кстати, почему ядро их само не монтирует), mount -a, загрузка модулей ядра и т.п.) Это действия, которые всё равно должны быть выполнены, без них ни один ранлевел не обойдётся, и я не понимаю, почему это вообще называется ранлевелом.

То же самое с halt/reboot

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

> Мне бы, например, хотелось, чтобы система шла с минимальным количеством ранлевелов (скажем, boot, default, nonetwork), а потом, если мне необходимо я сам добавлю нужные мне ранлевелы, будь то для бэкапа или для восстановления системы.

Тебе кто-то мешает выбирать такую систему? Выбирай.

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

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

>Что - после исполнения всего, что на boot он переходит на уровень default?

Если это был вопрос, то ответ - Да. :)

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

>Если это был вопрос, то ответ - Да. :)

Да это был вопрос. Вот именно этого я и не понимаю.

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

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

Откуда вы знаете, что вам нужно, а что не нужно?

И причём тут достраивать что-то?

Тут речь идёт о другом, а не о том, что "собери всё сам" - надо иногда и _допонимать_ о чём идёт речь.

Продолжая, для вас:

Что же мешает просто установить нужный вам сервис? Например, я говорю установить openntpd - сис-ма управления пакетами (сама) создаёт нужные мне пользователя и группу (ntp), и устанавливает нужный сервис, файл для ротации лог-файлов (если включена опция юзать логротейт, например). Мне же остаётся только решить в какой ранлевел его добавить. А нафига, до этого момента иметь в сис-ме пользователя ntp, раз он не нужен?

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

> Откуда вы знаете, что вам нужно, а что не нужно?

Философский вопрос, однако. Древние, говорят, тоже задумывались над такими проблемами. Ещё их волновали вопросы "Знаю ли я себя", "Познаваем ли мир" и т.д. Всю жизнь мне казалось, что я знаю, чего хочу. Но ты мне только что открыл глаза. Ну что ж, я пошёл писать с нуля собственный линукс для себя, потому что готовое сделано без учёта МОИХ личных требований. Заодно разберусь, чего же я всё-таки хочу...

anonymous
()

Мне трудно понять смысл перелопачивания инитскриптов. Неужели вы так часто перезагружаетесь? Разве что на ноуте это (какой-то) смысл имеет. Но у меня и так ноут за 25 сек с иксами грузится (archlinux, fluxbox)

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