#!/bin/sh ### BEGIN INIT INFO # Provides: smbd # 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 SMB/CIFS daemon (smbd) ### END INIT INFO setglobal PIDDIR = '/var/run/samba' setglobal SMBDPID = "$PIDDIR/smbd.pid" # clear conflicting settings from the environment unset TMPDIR # See if the daemons are there test -x /usr/sbin/smbd || exit 0 source /lib/lsb/init-functions match $1 { with start if init_is_upstart { exit 1 } setglobal SERVER_ROLE = $[samba-tool testparm --parameter-name="server role" !2 >/dev/null | tail -1] if test $SERVER_ROLE = "active directory domain controller" { exit 0 } log_daemon_msg "Starting SMB/CIFS daemon" smbd # Make sure we have our PIDDIR, even if it's on a tmpfs install -o root -g root -m 755 -d $PIDDIR if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D { log_end_msg 1 exit 1 } log_end_msg 0 with stop if init_is_upstart { exit 0 } log_daemon_msg "Stopping SMB/CIFS daemon" smbd start-stop-daemon --stop --quiet --pidfile $SMBDPID # Wait a little and remove stale PID file sleep 1 if test -f $SMBDPID && ! ps h $[cat $SMBDPID] > /dev/null { # Stale PID file, remove it (should be removed by # smbd itself IMHO). rm -f $SMBDPID } log_end_msg 0 with reload log_daemon_msg "Reloading /etc/samba/smb.conf" smbd start-stop-daemon --stop --quiet --signal HUP --pidfile $SMBDPID log_end_msg 0 with restart|force-reload if init_is_upstart { exit 1 } $0 stop sleep 1 $0 start with status status_of_proc -p $SMBDPID /usr/sbin/smbd smbd exit $? with * echo "Usage: /etc/init.d/smbd {start|stop|reload|restart|force-reload|status}" exit 1 } exit 0