summaryrefslogtreecommitdiffstats
path: root/abs/core/runit-scripts/runitscripts/services/nfsd/run
blob: 639c0cc8c37cde1ddc4ab289d036759b042c01fa (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
#!/bin/bash
exec 2>&1
export TERM=linux
. /etc/rc.conf
. /etc/rc.d/functions
stat_runit "Starting NFSD"

# Make sure the statd daemon is up
# (the statd service must ensure portmap is running first)
svwaitup /var/service/nfs-common >/dev/null 2>/dev/null

source /etc/conf.d/nfs-server.conf

NFSD="/usr/bin/rpc.nfsd"



# Default number of nfsd servers
[ -z "$NFSD_COUNT" ] && NFSD_COUNT=8

# Default mountpoint and options for nfsd filesystem
[ -z "$PROCNFSD_MOUNTPOINT" ] && PROCNFSD_MOUNTPOINT="/proc/fs/nfsd"
[ -z "$PROCNFSD_MOUNTOPTS" ] && PROCNFSD_MOUNTOPTS="rw,nodev,noexec,nosuid"

do_modprobe() {
    if [ -x /usr/bin/modprobe -a -f /proc/modules ]; then
      modprobe -q "$1" || true
    fi
}



do_mount() {
    if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
      return 1
    fi

    if grep -vw "$1" /proc/mounts &> /dev/null ; then
      if ! mountpoint -q "$2" ; then
        mount -t "$1" "$1" "$2" -o "$3"
        return
      fi
    fi
    return 0
}

do_umount() {
    if mountpoint -q "$1" ; then
      umount "$1"
    fi
    return 0
}




# start some nfsd threads
printhl "	Using ${NFSD_OPTS} "
do_modprobe nfsd
do_mount nfsd "$PROCNFSD_MOUNTPOINT" "$PROCNFSD_MOUNTOPTS"

# Re-export all directories in /etc/exports
/usr/bin/exportfs -ra > /dev/null 2>/dev/null

 $NFSD $NFSD_OPTS $NFSD_COUNT


# 
exec /usr/bin/rpc.mountd --foreground  >/dev/null 2>/dev/null