We should always mount $RC_SVCDIR unless in a vserver or it's already mounted.

This commit is contained in:
Roy Marples 2009-01-29 13:38:15 +00:00
parent 415fe87d8c
commit 6bb44be2a3

View File

@ -1,19 +1,20 @@
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.
retval=0
# mount $svcdir as something we can write to if it's not rw
# mount $RC_SVCDIR as something we can write to if it's not rw
# On vservers, / is always rw at this point, so we need to clean out
# the old service state data
RC_SVCDIR=${RC_SVCDIR:-/@LIB@/rc/init.d}
if [ "${RC_SVCDIR}" != "/" ] && mkdir "${RC_SVCDIR}/.test.$$" 2>/dev/null; then
rmdir "${RC_SVCDIR}/.test.$$"
rm -rf "${RC_SVCDIR}"/*
else
mount_svcdir
retval=$?
fi
case "$(rc --sys)" in
OPENVZ|VSERVER) rm -rf "${RC_SVCDIR}"/*;;
*) if mountinfo --quiet "${RC_SVCDIR}"; then
rm -rf "${RC_SVCDIR}"/*
else
mount_svcdir
fi
;;
esac
retval=$?
if [ -e "${RC_LIBDIR}"/cache/deptree ]; then
cp -p "${RC_LIBDIR}"/cache/* "${RC_SVCDIR}" 2>/dev/null