--- samba 2003-09-17 13:25:17.000000000 +1000 +++ samba-new 2003-09-17 13:14:15.000000000 +1000 @@ -5,34 +5,71 @@ opts="${opts} reload" +DAEMONTOOLSDIR="/var/daemontools/smbd" +DAEMONTOOLSDIR2="/var/daemontools/nmbd" + depend() { need net use cupsd } start() { - ebegin "Starting samba" - start-stop-daemon --start --quiet --exec /usr/sbin/smbd - result=$? - start-stop-daemon --start --quiet --exec /usr/sbin/nmbd + if [ -x /usr/bin/svc ] && [ -x "${DAEMONTOOLSDIR}/run" ] \ + && [ ! -f "${DAEMONTOOLSDIR}/noinit" ] + then + ebegin "Starting supervised samba" + /usr/bin/pgrphack /usr/bin/supervise "${DAEMONTOOLSDIR}" | \ + /usr/bin/pgrphack /usr/bin/supervise "${DAEMONTOOLSDIR}/log" & + result=$? + /usr/bin/pgrphack /usr/bin/supervise "${DAEMONTOOLSDIR2}" | \ + /usr/bin/pgrphack /usr/bin/supervise "${DAEMONTOOLSDIR2}/log" & + else + ebegin "Starting samba" + start-stop-daemon --start --quiet --exec /usr/sbin/smbd + result=$? + start-stop-daemon --start --quiet --exec /usr/sbin/nmbd + fi result=$(( $result + $? )) eend $result } stop() { ebegin "Stopping samba" - start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid - result=$? - start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid - result=$(( $result + $? )) + if [ -x /usr/bin/svok ] && /usr/bin/svok "$DAEMONTOOLSDIR" + then + /usr/bin/svc -dx "${DAEMONTOOLSDIR}" "${DAEMONTOOLSDIR}/log" \ + "${DAEMONTOOLSDIR2}" "${DAEMONTOOLSDIR2}/log" + result=$? + else + start-stop-daemon --stop --quiet --pidfile /var/run/samba/smbd.pid + result=$? + start-stop-daemon --stop --quiet --pidfile /var/run/samba/nmbd.pid + result=$(( $result + $? )) + fi eend $result } reload() { ebegin "Reloading samba" - killall -HUP smbd &>/dev/null - result=$? - killall -HUP nmbd &>/dev/null - result=$(( $result + $? )) + if [ -x /usr/bin/svok ] && /usr/bin/svok "$DAEMONTOOLSDIR" + then + /usr/bin/svc -h "${DAEMONTOOLSDIR}" "${DAEMONTOOLSDIR2}" + result=$? + else + killall -HUP smbd &>/dev/null + result=$? + killall -HUP nmbd &>/dev/null + result=$(( $result + $? )) + fi eend $result } + +status() { + if [ -x /usr/bin/svok ] && /usr/bin/svok "$DAEMONTOOLSDIR" + then + einfo `/usr/bin/svstat "${DAEMONTOOLSDIR}"` + einfo `/usr/bin/svstat "${DAEMONTOOLSDIR}/log"` + einfo `/usr/bin/svstat "${DAEMONTOOLSDIR2}"` + einfo `/usr/bin/svstat "${DAEMONTOOLSDIR2}/log"` + fi +}