X-Git-Url: https://secure.softndesign.org/git/?a=blobdiff_plain;f=master%2Fetc%2Finit.d%2Fsamba;fp=master%2Fetc%2Finit.d%2Fsamba;h=18389bc838437b9b78eedd6fc855f766b78cae4a;hb=a3300608811441c5238911ca14e56433ea4f4c5f;hp=0000000000000000000000000000000000000000;hpb=3a30026aa30355dac5c5f9742da0fdba797701ea;p=debian6500.git diff --git a/master/etc/init.d/samba b/master/etc/init.d/samba new file mode 100755 index 0000000..18389bc --- /dev/null +++ b/master/etc/init.d/samba @@ -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