1
0
mirror of https://github.com/lxc/lxcfs.git synced 2026-02-05 09:46:18 +01:00

Make the LXC hook more robust

Don't fail if /sys/fs/cgroup or some proc files don't exist.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
Stéphane Graber
2015-01-28 10:07:05 +01:00
parent 529c9faf6d
commit 2ab697dcb0

View File

@@ -1,33 +1,41 @@
#!/bin/sh -eu
# /proc files
if [ -d @LXCFSTARGETDIR@/proc/ ]; then
for entry in @LXCFSTARGETDIR@/proc/*; do
[ -e "${LXC_ROOTFS_MOUNT}/proc/$(basename $entry)" ] || continue
mount --bind $entry ${LXC_ROOTFS_MOUNT}/proc/$(basename $entry)
done
fi
mount -t tmpfs none ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/ -o size=4k,mode=755
if [ -d /sys/fs/cgroup/cgmanager.lower ]; then
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
mount --bind /sys/fs/cgroup/cgmanager.lower \
${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
elif [ -d /sys/fs/cgroup/cgmanager ]; then
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
mount --bind /sys/fs/cgroup/cgmanager \
${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
fi
# /sys/fs/cgroup files
if [ -d "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup" ]; then
mount -t tmpfs none ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/ -o size=4k,mode=755
if [ -d /sys/fs/cgroup/cgmanager.lower ]; then
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
mount --bind /sys/fs/cgroup/cgmanager.lower \
${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
elif [ -d /sys/fs/cgroup/cgmanager ]; then
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
mount --bind /sys/fs/cgroup/cgmanager \
${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/cgmanager
fi
if [ -d @LXCFSTARGETDIR@/cgroup ]; then
for entry in @LXCFSTARGETDIR@/cgroup/*; do
DEST=$(basename $entry)
if [ "$DEST" = "name=systemd" ]; then
DEST="systemd"
if [ -d @LXCFSTARGETDIR@/cgroup ]; then
for entry in @LXCFSTARGETDIR@/cgroup/*; do
DEST=$(basename $entry)
if [ "$DEST" = "name=systemd" ]; then
DEST="systemd"
fi
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
mount --bind $entry ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
done
if [ -d ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/ ]; then
mount --bind @LXCFSTARGETDIR@ ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/
fi
mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
mount --bind $entry ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
done
if [ -d ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/ ]; then
mount --bind @LXCFSTARGETDIR@ ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/
fi
fi
exit 0