#!/bin/sh
#
# chkconfig: 345 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#	       used to provide SMB network services.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

CONFIG=/etc/samba/smb.conf

# Check that smb.conf exists.
[ -f $CONFIG ] || exit 0

# See how we were called.
case "$1" in
  start)
	echo -n "Starting SMB services: "
	daemon smbd -D 	
	daemon nmbd -D 
	echo
	touch /var/lock/subsys/smb
	;;
  stop)
	echo -n "Shutting down SMB services: "

	## we have to get all the smbd process here instead of just the
	## main parent (i.e. killproc) because it can take a long time
	## for an individual process to process a TERM signal
	smbdpids=`ps guax | grep smbd | grep -v grep | awk '{print $2}'`
	for pid in $smbdpids; do
		kill -TERM $pid
	done
	## nmbd is ok to kill using killproc()
	killproc nmbd -TERM
	rm -f /var/lock/subsys/smb
	echo ""
	;;
  status)
	status smbd
	status nmbd
	;;
  restart)
	echo -n "Restarting SMB services: "
	$0 stop
	$0 start
	echo "done."
	;;
  *)
	echo "Usage: smb {start|stop|restart|status}"
	exit 1
esac