From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 10 May 2003 19:56:44 +0400 From: Denis Smirnov To: community@altlinux.ru Subject: Re: [Comm] Re: Message-ID: <20030510155644.GA3288@localhost.localdomain> References: <20030506134941.GE1605@localhost.localdomain> <20030507113037.GL374@osdn.org.ua> <20030507123312.GA12934@localhost.localdomain> <20030508082948.GG374@osdn.org.ua> <20030508191358.GA7673@localhost.localdomain> <4969971133.20030509030642@udm.ru> <20030508231257.GB15096@localhost.localdomain> <416723046.20030509113959@udm.ru> <20030509211059.GB22737@localhost.localdomain> <4918537866.20030510131504@udm.ru> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="/9DWx/yDrRhgMJTb" Content-Disposition: inline In-Reply-To: <4918537866.20030510131504@udm.ru> 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 List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: --/9DWx/yDrRhgMJTb Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Sat, May 10, 2003 at 01:15:04PM +0500, ASA wrote: > DS> В какой момент должен запускаться скрипт, если для него ничего не указано? > DS> Считать его зависимых от всех предыдущих по номеру? > Видимо, так. > Кстати, в RH и Debian есть вехи. Что-то типа - после S20 поднята > сеть, после S40 смонтированы все файловые системы. Хорошо бы это сделать в виде групп. То есть в качестве зависимости можно указывать не только сервис, но и имя группы, при этом каждый сервис может входить в какие-либо группы. Логику это почти не усложнит (всё равно ведь развернутся эти группы в зависимости от конкретных пакетов), зато жизнь мейнтейнерам облегчит. > DS> > seek test ;). Пример - в той же вынде выделите побольше иконок > DS> > на рабочем столе и нажмите Enter ;) Поэтому можно ввести > DS> > ограничение на одновременную работу не более 4*CPU скриптов враз. > DS> Это конфигурируемо должно быть. По-умолчанию 4*CPU -- оптимум. > Главное - не забыть об этом. Угу. Хотя так как запускалка должна отслеживать результат выполнения каждого скрипта, то для добавления ограничения по количеству работающих процессов почти ничего писать не нужно. > DS> > DS> > отдельно от других подобных ему. И тут может возникнуть > DS> > DS> > нетривиальная задача развязки обязательных и необязательных > DS> > DS> > зависимостей. > DS> > DS> А в чём собственно её нетривиальность? Автор пакета должен суметь чётко > DS> > DS> сформулировать что необходимо его сервису для работы. > DS> > Нетривиальность вообще в создании такого дерева. > DS> В смысле в создании дерева по меткам, или в проставлении меток > DS> зависимости? > Если скрипт 3 связан нежесткой зависимостью со скриптом 2, > который не стартовал, потому что он жестко связан со скриптом 1, > выдавшим FAILED. То 3-й скрипт стартует. Упрощённо алгоритм такой -- строится дерево. После этого создаётся список узлов, у которых нет зависимостей. Из этого списка выбираются имена скриптов для старта. После того, как скрипт завершит свою работу (с каким-либо кодом завершения) смотрим на узел-родитель, и смотрим на тип связи. В зависимости от результата выполнения скрипта, типа связи, наличия других невыполненых зависимостей родителя либо ничего не делаем с родителем, либо переносим его в список узлов готовых к выполнению. При этом если FAILED скрипт, зависимость которого с родителем прямая, то тогда родителю выставляется флаг FAILED, и, когда придёт время его переноса в очередь для выполнения мы просто выдаём что он и не будет выполняться. > DS> Нужно чтобы всё работало даже для тех программ, которые об этой фиче не > DS> знают. Если действительно сделать зависимостями по-умолчанию "все > DS> предыдущие скрипты в списке", то действительно будет всё работать. > Именно поэтому сами скрипты должни связываться реализоваться > только через теги-комментарии а-ля chkconfig. Согласен. -- С уважением, Денис http://freesource.info --/9DWx/yDrRhgMJTb Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+vSE8PuR8c4jhFKIRAgvpAJ9DGoCNWPXeiXc5XrRdBB80czMLaACgjWRA 4Zmd3XglJ2HoSNicOvjisKA= =F5uv -----END PGP SIGNATURE----- --/9DWx/yDrRhgMJTb--