pushd "$1/vdir" >/dev/null
case "$INITSTYLE" in
sysv)
- { $_FIND var/run ! -type d -print0; \
- $_FIND var/lock ! -type d -print0; } | xargs -0r $_CHROOT_SH rm
+ local -a dirs=( $($_CHROOT_SH realpath /var/run /var/lock | $_SED 's!^/*!!' || :) )
+ local dir
+ for dir in "${dirs[@]}"; do
+ $_FIND $dir ! -type d -print0 | xargs -0r $_CHROOT_SH rm
+ done
;;
plain)
$_CHROOT_SH rm .autofsck forcefsck 2>/dev/null || :
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
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