From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 9 May 2003 03:06:42 +0500 From: ASA X-Mailer: The Bat! (v1.60q) Organization: LLB, LLC X-Priority: 3 (Normal) Message-ID: <4969971133.20030509030642@udm.ru> To: Denis Smirnov Subject: Re[2]: [Comm] Re: In-Reply-To: <20030508191358.GA7673@localhost.localdomain> References: <200304281204.30421.combr@vesna.ru> <20030428192549.GO25074@localhost.localdomain> <20030506132429.GE4534@solemn.turbinal.org> <20030506134941.GE1605@localhost.localdomain> <20030507113037.GL374@osdn.org.ua> <20030507123312.GA12934@localhost.localdomain> <20030508082948.GG374@osdn.org.ua> <20030508191358.GA7673@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru X-Reply-To: ASA List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: 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