diff options
Diffstat (limited to 'sbin/init-functions.sh')
-rwxr-xr-x | sbin/init-functions.sh | 19 |
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}" ) |