[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd, чтоб его



Victor Wagner -> debian-russian@lists.debian.org  @ Wed, 17 Sep 2014 15:13:14 +0400:

 >> У большинства из них система зависимостей либо кривая, как у нынешнего
 >> SysV init (не у самого init, а у /etc/rc, как я понимаю), либо вообще
 >> отсутствует.

 VW> "Нынешний SysV init" это не более чем система соглашений о том, как
 VW> писать шелловские скрипты, которые будет init запускать при переходе
 VW> с ранлевела на ранлевел. Она полностью отдельна от самого init (который
 VW> с тем же успехом будет запускать bsd-style rc-скрипты) и этим и хороша.

Нет, это еще, во-первых, сам /sbin/init и /etc/inittab, а во-вторых,
/etc/rc.  В смысле, тот скрипт, который собственно и запускает те
скрипты, про которые соглашение.

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

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

 VW> Только идея вносить для этого изменения в код /sbin/init, не говоря уж о
 VW> том, чтобы заменять его на другие процессы - однозначно плоха.

 VW> Вызывайте из inittab хоть make, хоть prolog - это пожалуйста.

Глядя на man inittab и на man init, мне представляется, что SysV
/sbin/init - это спагетти минимум из трех сортов макарон.

Если в systemd их разделили на три бинарника (или более) - это хорошо.
Если нет - плохо.  Я так понял, глянув краем глаза, что там таки да, N
различных бинарников.  Может, и разделили.

 >> из SysV init откровенно следует выдрать работу с логинами и с power

 VW> Вот-вот. Следует выдрать. А не следует писать монстра, куда добавлять и
 VW> то, и другое, и двадцать пятое. Но, surprise - sysV init  с логинами и 
 VW> не работает.
 VW> Единственное что он делает, это респавнит некоторые процессы по их
 VW> завершению.

Вот это-то и выдрать.  Поскольку это далеко не единственный action у
него, и там макароны.  Для минимального /sbin/init он умеет слишком
много разного, а для нормального системного супервизора - слишком мало.

 VW> А что это будут за процессы - getty (которая уже ближе к понятию
 VW> "работает с логинами" - во всяком случае exec("/bin/login"..)  она
 VW> делать умеет) X-сервер (который опять же с логинами нифига не
 VW> работает) или еще какой-нибудь сетевой сервер - не важно

 VW> X-сервер с респавном запускать кстати для X-терминалов, в которых логины
 VW> обслуживаются удаленным *dm - вполне разумная идея.

Начнем с того, что там остальная функциональность-то не нужна...  Там
действительно в качестве /sbin/init подойдет шелловский скрипт на 20
строк.  Или даже сишный код на 40 :)


Reply to: