[lxc-devel] [PATCH] ubuntu: Fix regression in post-process

Stéphane Graber stgraber at ubuntu.com
Thu Nov 28 00:49:08 UTC 2013


THe recent reorg of lxc-ubuntu introduced some package installation in
post-process but without first disabling service startup.

As a result, if the cache is a bit out of date and a ssh update is
available, post-process will apply that update (as it does apt-get
install ssh vim) which in turn will attemp to start sshd. This will
either lead to ssh on the host being restarted or if there's no sshd on
the host, will fail the container creation as the postinst will get an
error from upstart.

The fix is very simply to add the same policy-rc.d trick when running
post-process.

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 templates/lxc-ubuntu.in | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/templates/lxc-ubuntu.in b/templates/lxc-ubuntu.in
index ac39ed2..4e6a54f 100644
--- a/templates/lxc-ubuntu.in
+++ b/templates/lxc-ubuntu.in
@@ -467,6 +467,13 @@ post_process()
     release=$2
     packages=$3
 
+    # Disable service startup
+    cat > $rootfs/usr/sbin/policy-rc.d << EOF
+#!/bin/sh
+exit 101
+EOF
+    chmod +x $rootfs/usr/sbin/policy-rc.d
+
     if [ ! -f $rootfs/etc/init/container-detect.conf ]; then
         # Make sure we have a working resolv.conf
         cresolvonf="${rootfs}/etc/resolv.conf"
@@ -538,6 +545,9 @@ post_process()
         mv $rootfs/dev/shm $rootfs/dev/shm.bak
         ln -s /run/shm $rootfs/dev/shm
     fi
+
+    # Re-enable service startup
+    rm $rootfs/usr/sbin/policy-rc.d
 }
 
 do_bindhome()
-- 
1.8.4.4





More information about the lxc-devel mailing list