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

Re: "Правильные" демоны - не демоны?



On Wed, Sep 09, 2009 at 07:15:04PM +0400, Alexander Galanin wrote:
> On Wed, 9 Sep 2009 11:32:06 +0400
> Alexander GQ Gerasiov <gq@cs.msu.su> wrote:
> 
> > Разработчики испугались и обещали сами исправиться:
> > http://lists.debian.org/debian-devel-announce/2009/09/msg00003.html
> 
> Что-то не нравится мне этот upstart, причём сразу по нескольким
> причинам:
> 1. подменяют простую и понятную последовательную инициализцию на
> нечто в лучшем случае асинхронное, в худшем --- многопоточное. И то и
> другое отлаживать не так просто.

Во-первых, я не фанат upstart. Монстр еще тот. Но сейчас активное внедрение
того, что называют "событийная" модель в ядро и юзерспейс -- факт. И это
неизбежное следствие увеличение числа и номенклатуры "втыкабельных" железяк,
с одной стороны, и увеличения числа состояний системы (standby, suspend, пропала
сеть, поменялся тип подключения) с другой. 

System V Init в этой ситуации неадекватен. Он рассчитан на то, что
инициализация это разовый, а не постоянный процесс. Это почти верно для
сервера в датацентре, но абсолютно неверно сейчас для рабочей станции.

Конечно есть наборы костылей для подключения дисков, для появления/отключения
сети, для режимов энергосбережения. Но это именно костыли. И то, что его
хотят заменить единой системой IMHO правильно. 

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

Так она и сейчас иногда отказывает грузиться без таймаута или Ctrl-C.

> знает ли кто-нибудь, как поведёт себя upstart, если событие, на которое
> "повешен" скрипт вообще не произойдёт и насколько это будет применимо в
> перечисленных случаях (монтирование usb-дисков в fstab, монтирование nfs)?

Если не появилась сеть, то, очевидно, nfs не смонтируется. 

> 2. тут ещё проще: один раз пишется скрипт вида update-init-sequence,
> который будет считывать зависимости, проводить на полученном графе
> топологическую сортировку и сохранять симлинки в нужном порядке. При
> обнаружении цикла следует ругаться как можно громче, давая
> администратору возможность разрулить зависимости именно сейчас, а не
> через полгода, когда понадобится машину перезагрузить.

Цикл можно обнаружить в runtime. Мне кажется, что именно здесь серьезной
проблемы нет. Зависимости как правило простые. Железные -- я бы сказал.
А если проблема с циклическими зависимостями у железа -- это уже беда.
Не зависимо от init.

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


Reply to: