--- /dev/null
+#!/bin/sh
+#
+# Start/stops the Samba daemons (nmbd and smbd).
+#
+#
+
+# Defaults
+RUN_MODE="daemons"
+
+# Reads config file (will override defaults above)
+[ -r /etc/default/samba ] && . /etc/default/samba
+
+PIDDIR=/var/run/samba
+NMBDPID=$PIDDIR/nmbd.pid
+SMBDPID=$PIDDIR/smbd.pid
+
+# clear conflicting settings from the environment
+unset TMPDIR
+
+# See if the daemons are there
+test -x /usr/sbin/nmbd -a -x /usr/sbin/smbd || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting Samba daemons..."
+
+ # Make sure we have our PIDDIR, even if it's on a tmpfs
+ mkdir -p $PIDDIR
+ chown root:root $PIDDIR
+ chmod 755 $PIDDIR
+
+ if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/nmbd -- -D; then
+ echo "FAILED."
+ exit 1
+ fi
+
+ if [ "$RUN_MODE" != "inetd" ]; then
+ #log_progress_msg "smbd"
+ if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D; then
+ echo "FAILED."
+ exit 1
+ fi
+ fi
+
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping Samba daemons..."
+
+ start-stop-daemon --stop --quiet --pidfile $NMBDPID
+ # Wait a little and remove stale PID file
+ sleep 1
+ if [ -f $NMBDPID ] && ! ps h `cat $NMBDPID` > /dev/null
+ then
+ # Stale PID file (nmbd was succesfully stopped),
+ # remove it (should be removed by nmbd itself IMHO.)
+ rm -f $NMBDPID
+ fi
+
+ if [ "$RUN_MODE" != "inetd" ]; then
+ #log_progress_msg "smbd"
+ start-stop-daemon --stop --quiet --pidfile $SMBDPID
+ # Wait a little and remove stale PID file
+ sleep 1
+ if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null
+ then
+ # Stale PID file (nmbd was succesfully stopped),
+ # remove it (should be removed by smbd itself IMHO.)
+ rm -f $SMBDPID
+ fi
+ fi
+
+ echo "done."
+
+ ;;
+ reload)
+ echo -n "Reloading /etc/samba/smb.conf..."
+
+ start-stop-daemon --stop --signal HUP --pidfile $SMBDPID
+
+ echo "done."
+ ;;
+ restart|force-reload)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}"
+ exit 1
+ ;;
+esac
+
+exit 0