aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-11-23 13:52:15 +0000
committerRoy Marples <roy@marples.name>2007-11-23 13:52:15 +0000
commitd7ea2987d6ba92206202f389e3e157407d6bb5a4 (patch)
treef4ba2dca7e027c3cc447ca2ffd3a63b2d3de799b
parent9583df9c28827ab503ecd3bfc0c69e230c25933f (diff)
grep isn't always in /bin
-rw-r--r--sh/init-common-post.sh11
1 files changed, 8 insertions, 3 deletions
diff --git a/sh/init-common-post.sh b/sh/init-common-post.sh
index ef53d3d6..850342dd 100644
--- a/sh/init-common-post.sh
+++ b/sh/init-common-post.sh
@@ -26,10 +26,15 @@
# 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 mkdir "${RC_SVCDIR}/.test.$$" 2>/dev/null ; then
+if [ "${RC_SVCDIR}" != "/" ] && mkdir "${RC_SVCDIR}/.test.$$" 2>/dev/null; then
rmdir "${RC_SVCDIR}/.test.$$"
- rm -rf $(ls -d1 "${RC_SVCDIR:-/lib/rcscripts/init.d}"/* 2>/dev/null | \
- grep -Ev "/(deptree|ksoftlevel|rc.log)$")
+ for x in ${RC_SVCDIR:-/lib/rcscripts/init.d}/*; do
+ [ -e "${x}" ] || continue
+ case ${x##*/} in
+ deptree|ksoftlevel|rc.log) ;;
+ *) rm -rf "${x}";;
+ esac
+ done
else
mount_svcdir
fi