summaryrefslogtreecommitdiff
path: root/package/samba/files/samba.init
blob: f181db1cdcb3dc084d8e1ec6b034cc6bc41b0499 (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
#!/bin/sh
#PKG samba
#INIT 80
. /etc/rc.conf

check_mount() {
	sed -n -e '/^#/d' -e '/path/s/^.*=//p' \
	    /etc/samba/smb.conf | while read path; do
		grep -v '^#' /etc/fstab | fgrep -q "$path" || continue
		count=0
		while :; do
			if fgrep -q "$path" /proc/mounts; then
				logger -t smb "Device mounted, starting samba"
				break
			fi
			if test $count -eq 9; then
				logger -s "required filesystem missing"
				exit 1
			fi
			sleep 1
			count=$(($count+1))
		done
	done
}

case $1 in
autostop) ;;
autostart)
	test x"${samba:-NO}" = x"NO" && exit 0
	test x"$samba" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
	exec sh $0 start
	;;
start)
	check_mount
	[ -d /var/run/samba ] || mkdir -p /var/run/samba
	[ -d /var/log/samba ] || mkdir -p /var/log/samba
	/usr/sbin/nmbd -D 
	/usr/sbin/smbd -D
	;;
stop)
	kill $(pgrep -f /usr/sbin/nmbd)
	kill $(pgrep -f /usr/sbin/smbd)
	;;
restart)
	sh $0 stop
	sh $0 start
	;;
*)
	echo "usage: $0 {start | stop | restart}"
	exit 1
esac
exit $?