almost every thing is ready
[debian6500.git] / master / etc / init.d / samba
diff --git a/master/etc/init.d/samba b/master/etc/init.d/samba
new file mode 100755 (executable)
index 0000000..18389bc
--- /dev/null
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides:          samba
+# Required-Start:    $network $local_fs $remote_fs
+# Required-Stop:     $network $local_fs $remote_fs
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Should-Start:      slapd cups
+# Should-Stop:       slapd cups
+# Short-Description: start Samba daemons (nmbd and smbd)
+### END INIT INFO
+
+
+# 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
+
+. /lib/lsb/init-functions
+
+case "$1" in
+       start)
+               log_daemon_msg "Starting Samba daemons"
+               # Make sure we have our PIDDIR, even if it's on a tmpfs
+               install -o root -g root -m 755 -d $PIDDIR
+
+               if [ -n `which testparm` ]
+               then
+                       NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
+               fi
+               if [ "$NMBD_DISABLED" != 'Yes' ]; then
+                       log_progress_msg "nmbd"
+                       if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/nmbd -- -D
+                       then
+                               log_end_msg 1
+                               exit 1
+                       fi
+               fi
+
+               if [ "$RUN_MODE" != "inetd" ]; then
+                       log_progress_msg "smbd"
+                       if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D; then
+                               log_end_msg 1
+                               exit 1
+                       fi
+               fi
+
+               log_end_msg 0
+               ;;
+       stop)
+               log_daemon_msg "Stopping Samba daemons"
+               log_progress_msg "nmbd"
+
+               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
+
+               log_end_msg 0
+
+               ;;
+       reload)
+               if [ "$RUN_MODE" != "inetd" ]; then
+                       log_daemon_msg "Reloading /etc/samba/smb.conf" "smbd only"
+
+                       start-stop-daemon --stop --quiet --signal HUP --pidfile $SMBDPID
+
+                       log_end_msg 0
+               fi
+               ;;
+       restart|force-reload)
+               $0 stop
+               sleep 1
+               $0 start
+               ;;
+        status)
+               status="0"
+               NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
+               if [ "$NMBD_DISABLED" != "Yes" ]; then
+                       status_of_proc -p $NMBDPID /usr/sbin/nmbd nmbd || status=$?
+               fi
+               if [ "$RUN_MODE" != "inetd" ]; then
+                       status_of_proc -p $SMBDPID /usr/sbin/smbd smbd || status=$?
+               fi
+               if [ "$NMBD_DISABLED" = "Yes" -a "$RUN_MODE" = "inetd" ]; then
+                       status="4"
+               fi
+               exit $status
+               ;;
+       *)
+               echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload|status}"
+               exit 1
+               ;;
+esac
+
+exit 0