Przeglądaj źródła

wait for mount points for 9 seconds, when registered in /etc/fstab

Waldemar Brodkorb 10 lat temu
rodzic
commit
36d7c1cb63
2 zmienionych plików z 22 dodań i 1 usunięć
  1. 1 1
      package/samba/Makefile
  2. 21 0
      package/samba/files/samba.init

+ 1 - 1
package/samba/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		samba
 PKG_VERSION:=		3.6.23
-PKG_RELEASE:=		4
+PKG_RELEASE:=		5
 PKG_MD5SUM:=		2f7aee1dc5d31aefcb364600915b31dc
 PKG_DESCR:=		NetBIOS/SMB file and print server
 PKG_SECTION:=		net/fs

+ 21 - 0
package/samba/files/samba.init

@@ -3,6 +3,26 @@
 #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)
@@ -11,6 +31,7 @@ autostart)
 	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