summaryrefslogtreecommitdiff
path: root/lxc/lxc-cgroups
diff options
context:
space:
mode:
Diffstat (limited to 'lxc/lxc-cgroups')
-rw-r--r--lxc/lxc-cgroups54
1 files changed, 54 insertions, 0 deletions
diff --git a/lxc/lxc-cgroups b/lxc/lxc-cgroups
new file mode 100644
index 000000000..c920d44cc
--- /dev/null
+++ b/lxc/lxc-cgroups
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# /etc/rc.d/lxc-cgroups: setup lxc cgroups
+#
+
+if test ! -f /proc/cgroups
+then
+ echo 'cgroups are not enabled on this kernel.'
+ exit 1
+fi
+
+case $1 in
+ start)
+ # Mount system cgroups.
+ mount -t tmpfs -o nosuid,nodev,noexec,mode=0755 tmpfs /sys/fs/cgroup
+ for i in $(awk '!/^#/{if($4==1){print$1}}' /proc/cgroups)
+ do
+ mkdir /sys/fs/cgroup/$i
+ mount -t cgroup -o nosuid,nodev,noexec,$i cgroup /sys/fs/cgroup/$i
+ done
+ mkdir /sys/fs/cgroup/systemd
+ mount -t cgroup -o nosuid,nodev,noexec,none,name=systemd cgroup /sys/fs/cgroup/systemd
+ mkdir /sys/fs/cgroup/unified
+ mount -t cgroup2 -o nosuid,nodev,noexec cgroup /sys/fs/cgroup/unified
+ mount -o ro,remount /sys/fs/cgroup
+ # Setup user cgroups.
+ if test -f /etc/lxc/lxc-usernet
+ then
+ test -f /sys/fs/cgroup/cpuset/cgroup.clone_children && echo 1 > /sys/fs/cgroup/cpuset/cgroup.clone_children
+ test -f /sys/fs/cgroup/memory/memory.use_hierarchy && echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
+ for i in $(awk '!/^#/{if($1!~"@"){print$1}}' /etc/lxc/lxc-usernet)
+ do
+ for j in /sys/fs/cgroup/*
+ do
+ test $j = /sys/fs/cgroup/unified && continue
+ mkdir -m 0755 -p $j/$i
+ chown -R $i $j/$i
+ done
+ done
+ fi
+ ;;
+ stop)
+ umount -R /sys/fs/cgroup
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 [start|stop|restart]"
+ ;;
+esac
+
+# End of file

Generated by cgit