[devel] q: installer: Killing all remaining processes (forever)
Stanislav Ievlev
=?iso-8859-1?q?inger_=CE=C1_altlinux=2Eorg?=
Вс Апр 13 13:54:05 MSD 2008
On Fri, Apr 11, 2008 at 05:18:23PM +0400, Evgeny Sinelnikov wrote:
> Здравствуйте,
>
> 2008/4/8 Stanislav Ievlev <inger на altlinux.org>:
> > Когда будете делать новые патчи - оповестите откуда брать.
> >
> > Текущая версия по идее уже не выдаёт kernel panic, но неотмонтированный
> > /mnt/destination/dev всё ещё остаётся .
> >
> >
> Проблема в том, что не корректно просто так добавлять sleep (1), нужно
> ожидать сигнала ECHILD. После этого проблемы с /mnt/destination/dev
> исчезают сами собой... Это раз.
Это лучше с Дима скажет - у него были какие-то аргументы против ECHILD.
Что касается финального loop_change_fd, то сдаётся мне в свете
накопившегося опыта стоит попробовать следующее:
* copy+reexec init'a с tmpfs (тогда точно не будет никаких зависаний ибо
файл процесса уже будет вне опасности)
* по окончании работы pivot_root в tmpfs (откуда был запущен) далее kill и umount.
После второй операции возможно и повторный loop_change_fd не пригодится.
Мы один раз уже пробовали эту схему, но тогда видать не дотумкали насчёт
ожидания убиения процессов, увидели что не получается отмонтирование и
отказались от неё. Стоит попробовать ещё разок.
Подробная информация о списке рассылки Devel