From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 15 Apr 2008 11:42:36 +0400 From: Stanislav Ievlev To: ALT Linux Team development discussions Message-ID: <20080415074236.GB13715@imap.altlinux.org> References: <921f6bb40804070938t596e4f67h3f59b2070d3d39c9@mail.gmail.com> <20080407165034.GA13412@wo.int.altlinux.org> <921f6bb40804070958j33821e72ra54d70d132c048a8@mail.gmail.com> <20080407170702.GB13412@wo.int.altlinux.org> <20080408063238.GA10018@imap.altlinux.org> <921f6bb40804110618l2ab8a180nc23a13e2a61dc415@mail.gmail.com> <20080413095404.GA1821@imap.altlinux.org> <921f6bb40804131700w25f96be3nf8778a75c9884532@mail.gmail.com> <20080414075038.GC30028@imap.altlinux.org> <921f6bb40804141513j4efd6410o3632f12897791386@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <921f6bb40804141513j4efd6410o3632f12897791386@mail.gmail.com> Subject: Re: [devel] q: installer: Killing all remaining processes (forever) X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.10b3 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 07:42:37 -0000 Archived-At: List-Archive: List-Post: On Tue, Apr 15, 2008 at 02:13:14AM +0400, Evgeny Sinelnikov wrote: > 2008/4/14 Stanislav Ievlev : > > On Mon, Apr 14, 2008 at 04:00:38AM +0400, Evgeny Sinelnikov wrote: > > > > Что касается финального loop_change_fd, то сдаётся мне в свете > > > > накопившегося опыта стоит попробовать следующее: > > > > * copy+reexec init'a с tmpfs (тогда точно не будет никаких зависаний ибо > > > > файл процесса уже будет вне опасности) > > > > * по окончании работы pivot_root в tmpfs (откуда был запущен) далее kill и umount. > > > > После второй операции возможно и повторный loop_change_fd не пригодится. > > > > > > > > Мы один раз уже пробовали эту схему, но тогда видать не дотумкали насчёт > > > > ожидания убиения процессов, увидели что не получается отмонтирование и > > > > отказались от неё. Стоит попробовать ещё разок. > > > > > > > > > > Да, это интересная идея... Завтра проверю... > > А я тогда подожду результатов ;) > > зависание видимо было из-за того что несмотря на статичность файла init, > > он был загружен при помощи mmap и не вся его часть попала с loop в память. > > > > Что-то оно сегодня не всё успелось... я собрал, но не опробовал > вариант первичного перенесения init в tmpfs. По итоге стало ясно, что > вариант переносить init по завершении работы выглядит разумнее... А по мне так проще в начале, чтобы код менее ветвистым был. Так при повторном запуске половину программы придётся пропускать, а иначе только один вызов функции. Кстати вариант с SIGCHILD стал заметно дольше ожидать киляния процессов ... устанавливал только один раз, ожидание было порядка трёх секунд, по началу даже подумал что опять зависло. Или надо это ускорять или делать рисование точек интенсивнее.