diff options
author | Roy Marples <roy@marples.name> | 2009-01-29 13:38:15 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2009-01-29 13:38:15 +0000 |
commit | 6bb44be2a3af33512a6ce066246dfa71edc53fd9 (patch) | |
tree | bdc7077be01c879ce42b78be144c1d18deb930e0 | |
parent | 415fe87d8c3a53314b662c9b0018b8205027f446 (diff) |
We should always mount $RC_SVCDIR unless in a vserver or it's already mounted.
-rw-r--r-- | sh/init-common-post.sh.in | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/sh/init-common-post.sh.in b/sh/init-common-post.sh.in index aa264aa3..5c3af3a1 100644 --- a/sh/init-common-post.sh.in +++ b/sh/init-common-post.sh.in @@ -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 |