summaryrefslogtreecommitdiff
path: root/package/samba/files/samba.init
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-05-07 13:03:09 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-05-07 13:03:42 +0200
commit36d7c1cb639843bc89e5510fd7486e1b75e41aaf (patch)
tree014e8382255045cd9e8dda918797306732a8dced /package/samba/files/samba.init
parent3dbaf8534d28ac57b4b6f51e8552539b162d9d4a (diff)
wait for mount points for 9 seconds, when registered in /etc/fstab
Diffstat (limited to 'package/samba/files/samba.init')
-rw-r--r--package/samba/files/samba.init21
1 files changed, 21 insertions, 0 deletions
diff --git a/package/samba/files/samba.init b/package/samba/files/samba.init
index b7e370484..f181db1cd 100644
--- a/package/samba/files/samba.init
+++ b/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