--- samba-init 2005-08-09 13:56:26 +0100 +++ etc/init.d/samba 2007-03-09 09:49:42 +0000 @@ -3,7 +3,7 @@ # Distributed under the terms of the GNU General Public License, v2 or later # $Header: /var/cvsroot/gentoo/src/patchsets/samba/configs/samba-init,v 1.1 2005/08/09 12:56:26 seemant Exp $ -opts="${opts} reload" +opts="reload" depend() { after slapd @@ -11,46 +11,40 @@ use cupsd } -function signal_do { - local signal - signal="$1" - if [ -n "${signal}" ]; then - result=0 - last_result=0 - for daemon in ${daemon_list} - do - cmd=${daemon}_${signal} - cmd_exec="${!cmd}" - if [ -n "${cmd_exec}" ]; then - ebegin "${my_service_name} -> ${signal}: ${daemon}" - #echo ${cmd} '->' ${!cmd} - ${cmd_exec} > /dev/null - last_result=$? - eend ${last_result} - fi - result=$(( ${result} + ${last_result} )) - done - fi +signal_do() { + local signal="$1" + [ -z "${signal}" ] && return 0 + + local result=0 last_result=0 daemon= cmd_exec= + for daemon in ${daemon_list} ; do + eval cmd_exec=\$${daemon}_${signal} + if [ -n "${cmd_exec}" ]; then + ebegin "${my_service_name} -> ${signal}: ${daemon}" + #echo ${cmd} '->' ${!cmd} + ${cmd_exec} > /dev/null + last_result=$? + eend ${last_result} + fi + result=$(( ${result} + ${last_result} )) + done return ${result} } start() { ${my_service_PRE} - signal_do start - result_start=$? - if [ ${result_start} -gt 0 ]; then - ewarn "Error: stopping services (see system logs)" - signal_do stop - fi - eend ${result_start} + signal_do start && return 0 + + eerror "Error: starting services (see system logs)" + signal_do stop + return 1 } stop() { ${my_service_PRE} - signal_do stop - ${my_service_POST} - eend $? + if signal_do stop ; then + ${my_service_POST} + return 0 + fi } reload() { ${my_service_PRE} signal_do reload - eend $? }