#!/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