[Comm] Re:

ASA =?iso-8859-1?q?llb_=CE=C1_udm=2Eru?=
Пт Май 9 02:06:42 MSD 2003


Hello Denis,

Friday, May 9, 2003, 12:13:58 AM, you wrote:

DS>  >> Изменение структуры загрузки так, чтобы могло запускаться одновременно
DS>  >> несколько процессов инициализации, ускорит загрузку гораздо заметнее.

DS> У меня были только общие идеи. Для каждого стартового скрипта должно быть
DS> описание зависимостей -- после запуска какого скрипта можно запускать этот
DS> скрипт. Зависимость должна быть двух типов -- обязательная, и
DS> необязательная. Обязательная -- значит что если не поднимается тот сервис,
DS> от которого зависит нужный нам, то он даже не будет пытаться подниматься.
Вы только что описали систему поднятия сервисов в WinNT/2000/XP ;)

DS> Необязательные -- только обеспечивают соблюдение очерёдности.
А  это  хорошая  идея.  Относительно.  Но очередность уже есть в
SysV.

DS> Думаю доказывать прирост в скорости загрузки не надо.
Надо.   С   теми  скриптами,  которые  в  основном  налегают  на
недисковые  ресурсы (сеть, обработка конфигов и т.п.) - понятно.
А  если скрипт в основном завязан на диск, то его надо запускать
отдельно   от  других  подобных  ему.  И  тут  может  возникнуть
нетривиальная  задача  развязки  обязательных  и  необязательных
зависимостей.

DS> Вопрос только в
DS> одном -- настолько ли оно надо, чтобы тратить на это силы?
Имхо нет. Предлагаю промежуточную копромиссную схему, которая не
требует больших усилий.

В  сам  S-скрипт (те, которые лежат в init.d) добавляем еще одно
поле  типа  как это сделано для chkconfig. В этом поле указываем
класс скрипта - дисковый или нет.

Затем    rc-скрипт   (тот,   который   обеспечивает   выполнение
SysV-инициализации)  последовательно выполняет скрипты не просто
отсортировав SXX по порядку (типа `echo S*|sort`), а разбивая их
на  группы  по  приоритету  (S00  -  в одну кучу, S01 в другую и
т.п.).  Внутри  этой  группы  rc смотрит на поле класса скрипта,
находит  и  запускает  в  два  независимых "потока" "дисковые" и
"недисковые" скрипты.

Получаем,  во-первых,  полную  совместимость  с уже существующим
софтом,    завязанным    на   SysV,   а   во-вторых,   требуемое
распараллеливание скриптов.

Можно  пойти  дальше  и  ввести  еще  одно  поле  в  S-скрипте -
зависимость  от  уже  стартовавшего  сервиса.  Реализация именно
такого  способа  задания  зависимостей  не  представляет  вообще
никакого труда.

-- 
Best regards,
 ASA                            mailto:llb на udm.ru




Подробная информация о списке рассылки community