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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user