improve cgroup configuration checks

make the base/controller functions return successfully if cgroups v1/v2
are not configured in the kernel
This commit is contained in:
William Hubbs 2018-02-23 15:07:04 -06:00
parent aa7d3a7911
commit 38032626a6

View File

@ -42,7 +42,8 @@ cgroup1_base()
cgroup1_controllers() cgroup1_controllers()
{ {
yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ] || return 0 yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ] &&
grep -qw cgroup /proc/filesystems || return 0
while read -r name _ _ enabled _; do while read -r name _ _ enabled _; do
case "${enabled}" in case "${enabled}" in
1) mountinfo -q "/sys/fs/cgroup/${name}" && continue 1) mountinfo -q "/sys/fs/cgroup/${name}" && continue
@ -64,6 +65,7 @@ cgroup1_controllers()
cgroup2_base() cgroup2_base()
{ {
grep -qw cgroup2 /proc/filesystems || return 0
local base local base
base="$(cgroup2_find_path)" base="$(cgroup2_find_path)"
mkdir -p "${base}" mkdir -p "${base}"
@ -74,6 +76,7 @@ cgroup2_base()
cgroup2_controllers() cgroup2_controllers()
{ {
grep -qw cgroup2 /proc/filesystems || return 0
local active cgroup_path x y local active cgroup_path x y
cgroup_path="$(cgroup2_find_path)" cgroup_path="$(cgroup2_find_path)"
[ -z "${cgroup_path}" ] && return 0 [ -z "${cgroup_path}" ] && return 0
@ -91,19 +94,15 @@ cgroup2_controllers()
cgroups_hybrid() cgroups_hybrid()
{ {
grep -qw cgroup /proc/filesystems || return 0
cgroup1_base cgroup1_base
if grep -qw cgroup2 /proc/filesystems; then
cgroup2_base cgroup2_base
cgroup2_controllers cgroup2_controllers
fi
cgroup1_controllers cgroup1_controllers
return 0 return 0
} }
cgroups_legacy() cgroups_legacy()
{ {
grep -qw cgroup /proc/filesystems || return 0
cgroup1_base cgroup1_base
cgroup1_controllers cgroup1_controllers
return 0 return 0