diff options
Diffstat (limited to 'sh/init-common-post.sh.in')
-rw-r--r-- | sh/init-common-post.sh.in | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sh/init-common-post.sh.in b/sh/init-common-post.sh.in new file mode 100644 index 00000000..61f38631 --- /dev/null +++ b/sh/init-common-post.sh.in @@ -0,0 +1,28 @@ +# 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 +# On vservers, / is always rw at this point, so we need to clean out +# the old service state data +if [ "${RC_SVCDIR}" != "/" ] && mkdir "${RC_SVCDIR}/.test.$$" 2>/dev/null; then + rmdir "${RC_SVCDIR}/.test.$$" + for x in ${RC_SVCDIR:-/@LIB@/rc/init.d}/*; do + [ -e "${x}" ] || continue + case ${x##*/} in + depconfig|deptree|ksoftlevel|rc.log);; + *) rm -rf "${x}";; + esac + done +else + mount_svcdir + retval=$? +fi + +echo "sysinit" > "${RC_SVCDIR}/softlevel" + +# sysinit is now done, so allow init scripts to run normally +[ -e /dev/.rcsysinit ] && rm -f /dev/.rcsysinit + +exit ${retval} |