12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/sh
- # Copyright 2011 Canonical, Inc
- # 2014 Tianon Gravi
- # Author: Serge Hallyn <serge.hallyn@canonical.com>
- # Tianon Gravi <admwiggin@gmail.com>
- set -e
- # for simplicity this script provides no flexibility
- # if cgroup is mounted by fstab, don't run
- # don't get too smart - bail on any uncommented entry with 'cgroup' in it
- if grep -v '^#' /etc/fstab | grep -q cgroup; then
- echo 'cgroups mounted from fstab, not mounting /sys/fs/cgroup'
- exit 0
- fi
- # kernel provides cgroups?
- if [ ! -e /proc/cgroups ]; then
- exit 0
- fi
- # if we don't even have the directory we need, something else must be wrong
- if [ ! -d /sys/fs/cgroup ]; then
- exit 0
- fi
- # mount /sys/fs/cgroup if not already done
- if ! mountpoint -q /sys/fs/cgroup; then
- mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
- fi
- cd /sys/fs/cgroup
- # get/mount list of enabled cgroup controllers
- for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
- mkdir -p $sys
- if ! mountpoint -q $sys; then
- if ! mount -n -t cgroup -o $sys cgroup $sys; then
- rmdir $sys || true
- fi
- fi
- done
- # example /proc/cgroups:
- # #subsys_name hierarchy num_cgroups enabled
- # cpuset 2 3 1
- # cpu 3 3 1
- # cpuacct 4 3 1
- # memory 5 3 0
- # devices 6 3 1
- # freezer 7 3 1
- # blkio 8 3 1
- exit 0
|