55 lines
1.6 KiB
Bash
55 lines
1.6 KiB
Bash
#!/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
|