X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=95ada0da80ee045862558085a07d2207526d2c34;hb=b611393a98072ffa745720ce3c1e7b3d1f851e07;hp=4cf802493b36e920c582f32def6cd630a9a42c8b;hpb=2e45bc70c885e5e7be29206330eb45e53a741c90;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index 4cf8024..95ada0d 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -1416,11 +1416,19 @@ function _namespaceCleanup done done + # keep cgroup mount points + list=( "${list[@]}" "${CGROUP_MNT}" ) + if test -n "$CGROUP_MNT_PER_SS"; then + for ss in "${CGROUP_SUBSYS[@]}"; do + list=( "${list[@]}" "${CGROUP_MNT}/${ss}" ) + done + fi + local -a list_umount while read -r dev path opts; do test -n "$path" || continue - for i in "$root" /dev /proc; do - path_dir="${path}/" + path_dir="${path}/" + for i in "$root" /dev /proc /sys; do test "${path_dir#${i}/}" != "${path_dir}" && continue 2 done for i in "${list[@]}" /; do @@ -1474,15 +1482,18 @@ function _generateCgroupOptions hasCgroup || return 0 - findFile file "$__CONFDIR/.defaults/cgroup/mnt" "" - if test -n "$file"; then - read CGROUP_MNT < "$file" - fi findFile file "$__CONFDIR/.defaults/cgroup/subsys" "" if test -n "$file"; then _readFileToArray CGROUP_SUBSYS "$file" else - CGROUP_SUBSYS=( $($_SED '/^#/d;/^ns[[:space:]]/d;s/[[:space:]].*//' /proc/cgroups) ) + CGROUP_SUBSYS=( $($_AWK '/^#/ { next; } $1 == "ns" { next; } $4 != "0" { print $1; }' /proc/cgroups) ) + fi + findFile file "$__CONFDIR/.defaults/cgroup/mnt" "" + if test -n "$file"; then + read CGROUP_MNT < "$file" + elif test -d /sys/fs/cgroup; then + CGROUP_MNT=/sys/fs/cgroup + CGROUP_MNT_PER_SS=1 fi findFile file "$__CONFDIR/.defaults/cgroup/inherit" "" if test -n "$file"; then