]> git.pld-linux.org Git - packages/nfs-utils.git/blob - nfs.init
- $RPCMOUNTDOPTS -> $RPCMOUNTOPTIONS in accordance with /etc/sysconfig/nfsd
[packages/nfs-utils.git] / nfs.init
1 #!/bin/sh
2 #
3 # nfs           This shell script takes care of starting and stopping
4 #               the NFS services.
5 #
6 # chkconfig:    345 60 20
7 # description:  NFS is a popular protocol for file sharing across TCP/IP \
8 #               networks. This service provides NFS server functionality, \
9 #               which is configured via the /etc/exports file.
10 # probe:        true
11
12 # Source function library
13 . /etc/rc.d/init.d/functions
14
15 # Get network config
16 . /etc/sysconfig/network
17
18 # Get service config
19 [ -f /etc/sysconfig/nfsd ] && . /etc/sysconfig/nfsd
20
21 # Check that networking is up.
22 if is_yes "${NETWORKING}"; then
23         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
24                 msg_network_down NFSD
25                 exit 1
26         fi
27 else
28         exit 0
29 fi
30
31 if [ -x /sbin/pidof ] && [ "$1" != "stop" ]; then
32         [ -z "`/sbin/pidof portmap`" ] && nls "Error: portmap isn't running" && exit 0
33 fi
34
35 # Sanity checks
36 [ -x /usr/sbin/rpc.nfsd ] || exit 0
37 [ -x /usr/sbin/rpc.mountd ] || exit 0
38 [ -f /etc/exports ] || exit 0
39
40 RETVAL=0
41 # See how we were called.
42 case "$1" in
43   start)
44         # Check if the service is already running?
45         if [ ! -f /var/lock/subsys/nfs ]; then
46                 # Start daemons.
47                 if [ "$NFSDTYPE" = "U" ]; then
48                         msg_starting "NFS mountd"
49                         daemon rpc.mountd
50                         msg_starting "NFS daemon"
51                         daemon rpc.nfsd
52                 else
53                         modprobe -s nfsd > /dev/null 2>&1
54                         if [ "$(kernelverser)" -ge "002006" ] && \
55                             grep -q nfsd /proc/filesystems && \
56                             ! grep -q nfsd /proc/mounts; then
57                                 run_cmd "Mounting /proc/fs/nfsd filesystem" mount -t nfsd nfsd /proc/fs/nfsd
58                         fi
59                         msg_starting "NFS"
60                         daemon /usr/sbin/exportfs -r
61                         msg_starting "NFS mountd"
62                         daemon rpc.mountd $RPCMOUNTOPTIONS
63                         msg_starting "NFS daemon"
64                         daemon rpc.nfsd $RPCNFSDCOUNT
65                 fi
66                 touch /var/lock/subsys/nfs
67         else
68                 msg_already_running "NFS"
69         fi
70         ;;
71   stop)
72         if [ -f /var/lock/subsys/nfs ]; then
73                 # Stop daemons.
74                 if [ "$NFSDTYPE" = "U" ]; then
75                         msg_stopping "NFS mountd"
76                         killproc rpc.mountd
77                         msg_stopping "NFS daemon"
78                         killproc rpc.nfsd
79                 else
80                         msg_stopping "NFS mountd"
81                         killproc rpc.mountd
82                         msg_stopping "NFS daemon"
83                         killproc nfsd -QUIT
84                         msg_stopping "NFS"
85                         daemon /usr/sbin/exportfs -au
86                 fi
87                 rm -f /var/lock/subsys/nfs
88         else
89                 msg_not_running "NFS"
90         fi
91         ;;
92   status)
93         status rpc.mountd
94         RETVAL=$?
95         if [ "$NFSDTYPE" = "U" ]; then
96                 status rpc.nfsd
97         else
98                 status nfsd
99         fi
100         RET=$?
101         [ $RETVAL -eq 0 ] && RETVAL=$RET
102         ;;
103   restart)
104         $0 stop
105         $0 start
106         exit $?
107         ;;
108   force-reload)
109         if [ "$NFSDTYPE" = "U" ]; then
110                 $0 restart
111         else
112                 $0 reload
113         fi
114         exit $?
115         ;;
116   reload)
117         [ "$NFSDTYPE" = "U" ] && exit 0
118         if [ -f /var/lock/subsys/nfs ]; then
119                 msg_reloading "NFS"
120                 busy
121                 /usr/sbin/exportfs
122                 [ $? -ne 0 ] && RETVAL=7
123                 [ $RETVAL -eq 0 ] && ok || died 
124         else
125                 msg_not_running "NFS" >&2
126                 exit 7
127         fi
128         ;;
129   probe)
130         [ "$NFSDTYPE" = "U" ] && exit 0
131         if [ ! -f /var/lock/subsys/nfs ]; then
132                 echo start
133                 exit 0
134         fi
135         /sbin/pidof rpc.mountd >/dev/null 2>&1; MOUNTD="$?"
136         /sbin/pidof nfsd >/dev/null 2>&1; NFSD="$?"
137         if [ $MOUNTD = 1 -o $NFSD = 1 ]; then
138                 echo restart
139                 exit 0
140         fi
141         if [ /etc/exports -nt /var/lock/subsys/nfs ]; then
142                 echo reload
143                 exit 0
144         fi
145         ;;
146   *)
147         msg_usage "$0 {start|stop|restart|reload|force-reload|probe|status}"
148         exit 3
149 esac
150
151 exit $RETVAL
This page took 0.051276 seconds and 4 git commands to generate.