summaryrefslogtreecommitdiff
path: root/packaging/Debian/debian/samba.init
blob: 00b8dcbb100a35a48c93ac7dc0141657811ba76c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/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

NMBDPID=/var/run/samba/nmbd.pid
SMBDPID=/var/run/samba/smbd.pid

# clear conflicting settings from the environment
unset TMPDIR

# If Samba is running from inetd then there is nothing to do
if [ "$RUN_MODE" = "inetd" ]; then
	# INIT_VERSION is defined for scripts than run directly from init...
	if [ "$INIT_VERSION" = "" ]; then
		cat <<EOF

Warning: Samba is set to start from inetd; this script has no effect.
Run "dpkg-reconfigure samba" if you want Samba to be started and stopped
from this script.  If you want to continue running Samba from inetd, you
should use "killall nmbd smbd" to restart the service, or update-inetd
to disable/reenable it.

EOF
	fi
	exit 0
fi

# 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:"

		echo -n " nmbd"
		start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- -D

		echo -n " smbd"
		start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- -D

		echo "."
		;;
	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
		echo -n "nmbd "

		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
		echo "smbd."

		;;
	reload)
		echo -n "Reloading /etc/samba/smb.conf (smbd only)"
		start-stop-daemon --stop --signal HUP --pidfile $SMBDPID

		echo "."
		;;
	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