summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/init-functions.sh')
-rwxr-xr-xsbin/init-functions.sh19
1 files changed, 13 insertions, 6 deletions
diff --git a/sbin/init-functions.sh b/sbin/init-functions.sh
index 04a1f13..2cf46b9 100755
--- a/sbin/init-functions.sh
+++ b/sbin/init-functions.sh
@@ -1,4 +1,4 @@
-# Copyright 1999-2005 Gentoo Foundation
+# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# bool check_statedir(dir)
@@ -40,14 +40,21 @@ start_critical_service() {
# Needed for some addons like dm-crypt that starts in critical services
local myservice=$1
- source "/etc/init.d/${service}" || eerror "Failed to source /etc/init.d/${service}"
+ source "/etc/init.d/${service}"
retval=$?
- [[ ${retval} -ne 0 ]] && return "${retval}"
- [[ -e /etc/conf.d/${service} ]] && source "/etc/conf.d/${service}"
- source /etc/rc.conf
+ if [[ ${retval} -ne 0 ]]; then
+ eerror "Failed to source /etc/init.d/${service}"
+ return "${retval}"
+ fi
- start || eerror "Failed to start /etc/init.d/${service}"
+ local conf="$(add_suffix /etc/conf.d/${service})"
+ [[ -e ${conf} ]] && source "${conf}"
+ conf="$(add_suffix /etc/rc.conf)"
+ [[ -e ${conf} ]] && source "${conf}"
+
+ start
retval=$?
+ [[ ${retval} -ne 0 ]] && eerror "Failed to start /etc/init.d/${service}"
return "${retval}"
)