From 6bb44be2a3af33512a6ce066246dfa71edc53fd9 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Thu, 29 Jan 2009 13:38:15 +0000 Subject: [PATCH] We should always mount $RC_SVCDIR unless in a vserver or it's already mounted. --- sh/init-common-post.sh.in | 21 +++++++++++---------- 1 file 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 # 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