[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