On Wed, Jun 3, 2015 at 6:09 PM, Konstantin Khomoutov <flatw...@users.sourceforge.net> wrote: > > On Wed, 3 Jun 2015 17:26:21 +0200 > Alexander Thomas <alexander.thomas+d...@esaturnus.com> wrote: > > [...] > > The long story: > > > > We have a setup with multiple servers (running Wheezy). When booting, > > the servers check whether updates are available on a master server. If > > available, they are pulled in through a dist-upgrade. This > > check/update needs to happen before any of the normal services are > > started, to avoid the need of taking down everything and then starting > > it back up after the update. > [...] > > Wouldn't it be simpler to implement this check and update using > initramfs hooks? You could bind-mount /dev, /sys and /proc to > the root filesystem, chroot there and run there a script which would > check for updates, apply them, if any, and exit. After that the system > would just resume booting.
That would be an option, but it might still cause the same problem of apt-get hanging as we currently experience when doing the update before runlevel S. We looked deeper into this and found out that apt-get always hangs while installing a package before the first runlevel switch. An strace reveals an endless loop of SIGCONT and ioctl calls. Running other commands that use ioctl also results in a hang, so the controlling terminal seems to lack certain capabilities at this stage. We have found a workaround: we spawn a new terminal with agetty and run the update script in there, this allows to perform the apt-get dist-upgrade in runlevel S and avoid the init 1 hack. -- Alexander -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/cakr4ymwhfxxd2sxrbwgpnu6hlsubllcygo9ofv0z7rz5g7n...@mail.gmail.com