]>
git.proxmox.com Git - mirror_lxcfs.git/blob - share/lxc.mount.hook.in
14 # We're dealing with mount entries, so expand any symlink
15 LXC_ROOTFS_MOUNT
=$
(readlink
-f "${LXC_ROOTFS_MOUNT}")
18 if [ -d {{LXCFSTARGETDIR
}}/proc
/ ]; then
19 for entry
in {{LXCFSTARGETDIR
}}/proc
/*; do
20 DEST
=$
(basename "$entry")
21 [ -e "${LXC_ROOTFS_MOUNT}/proc/${DEST}" ] ||
continue
22 mount
-n --bind "$entry" "${LXC_ROOTFS_MOUNT}/proc/${DEST}"
26 # /sys/devices/system/cpu
27 if [ -d {{LXCFSTARGETDIR
}}/sys
/devices
/system
/cpu
] ; then
28 if [ -f {{LXCFSTARGETDIR
}}/sys
/devices
/system
/cpu
/uevent
]; then
29 mount
-n --bind {{LXCFSTARGETDIR
}}/sys
/devices
/system
/cpu
"${LXC_ROOTFS_MOUNT}/sys/devices/system/cpu"
31 for entry
in {{LXCFSTARGETDIR
}}/sys
/devices
/system
/cpu
/*; do
32 DEST
=$
(basename "$entry")
33 [ -e "${LXC_ROOTFS_MOUNT}/sys/devices/system/cpu/${DEST}" ] ||
continue
34 mount
-n --bind "$entry" "${LXC_ROOTFS_MOUNT}/sys/devices/system/cpu/${DEST}"
40 if [ -d "${LXC_ROOTFS_MOUNT}{{LXCFSTARGETDIR}}/" ]; then
41 mount
-n --bind {{LXCFSTARGETDIR
}} "${LXC_ROOTFS_MOUNT}{{LXCFSTARGETDIR}}/"
44 # no need for lxcfs cgroups if we have cgroup namespaces
45 [ -n "$LXC_CGNS_AWARE" ] && [ -f /proc
/self
/ns
/cgroup
] && exit 0
47 # Don't mess with containers that don't have /sys/fs/cgroup configured
48 # (lxc.mount.auto = cgroup:mixed)
49 if touch "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/lxcfs"; then
50 rm "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/lxcfs"
55 # Skip mounting cgroup tree if requested.
56 if [ "${SKIP_CGROUP_MOUNTS}" = "1" ]; then
60 # /sys/fs/cgroup files
61 if [ -d "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup" ]; then
62 if [ -d {{LXCFSTARGETDIR
}}/cgroup
]; then
63 # Cleanup existing mounts
64 for entry
in "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup"/*; do
65 DEST
=$
(basename "$entry")
67 if [ "${DEST}" = "cgmanager" ]; then
71 if [ ! -d "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}" ]; then
75 while grep -q "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}" /proc
/self
/mountinfo
; do
76 grep "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}" /proc
/self
/mountinfo | cut
-d' ' -f5 |
while read -r line
; do
77 [ -e "${line}" ] ||
continue
78 umount
-l "${line}" || true
82 rm -Rf "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}"
85 # Mount the new entries
86 for entry
in {{LXCFSTARGETDIR
}}/cgroup
/*; do
87 DEST
=$
(basename "$entry")
88 if [ "$DEST" = "name=systemd" ]; then
92 if [ ! -d "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}" ]; then
93 mkdir
"${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}"
96 mount
-n --bind "$entry" "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${DEST}"
98 # make sure that cpu,cpuacct shows up as cpu and cpuacct
99 # separately, else systemd is unhappy
100 if echo "$DEST" |
grep -q ","; then
101 arr
=$
(echo "$DEST" |
tr "," "\n")
104 if [ ! -L "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${single}" ]; then
105 ln -s "$DEST" "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/${single}"