]> git.proxmox.com Git - mirror_lxcfs.git/blob - share/lxc.mount.hook.in
lxc mount hook: whitespace fixup
[mirror_lxcfs.git] / share / lxc.mount.hook.in
1 #!/bin/sh -eu
2
3 # Don't mess with containers that don't have /sys/fs/cgroup configured
4 # (lxc.mount.auto = cgroup:mixed)
5
6 if touch ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/lxcfs; then
7 rm ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/lxcfs
8 else
9 exit 0
10 fi
11
12 # /proc files
13 if [ -d @LXCFSTARGETDIR@/proc/ ]; then
14 for entry in @LXCFSTARGETDIR@/proc/*; do
15 [ -e "${LXC_ROOTFS_MOUNT}/proc/$(basename $entry)" ] || continue
16 mount -n --bind $entry ${LXC_ROOTFS_MOUNT}/proc/$(basename $entry)
17 done
18 fi
19
20 # /sys/fs/cgroup files
21 if [ -d "${LXC_ROOTFS_MOUNT}/sys/fs/cgroup" ]; then
22 if [ -d @LXCFSTARGETDIR@/cgroup ]; then
23 for entry in @LXCFSTARGETDIR@/cgroup/*; do
24 DEST=$(basename $entry)
25 if [ "$DEST" = "name=systemd" ]; then
26 DEST="systemd"
27 fi
28
29 if mountpoint -q ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST; then
30 continue
31 fi
32
33 if [ ! -d ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST ]; then
34 mkdir ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
35 fi
36
37 mount -n --bind $entry ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$DEST
38
39 # make sure that cpu,cpuacct shows up as cpu and cpuacct
40 # separately, else systemd is unhappy
41 if echo $DEST | grep -q ","; then
42 arr=$(echo $DEST | tr "," "\n")
43 for single in $arr
44 do
45 if [ ! -L ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$single ]; then
46 ln -s $DEST ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/$single
47 fi
48 done
49 fi
50 done
51
52 if [ -d ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/ ]; then
53 mount -n --bind @LXCFSTARGETDIR@ ${LXC_ROOTFS_MOUNT}@LXCFSTARGETDIR@/
54 fi
55 fi
56 fi
57
58 exit 0