]> git.pld-linux.org Git - packages/nfs-utils.git/blob - nfs.init
- LSB conformance
[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 ]; 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                         msg_starting "NFS"
54                         daemon /usr/sbin/exportfs -r
55                         msg_starting "NFS mountd"
56                         daemon rpc.mountd $RPCMOUNTDOPTS
57                         msg_starting "NFS daemon"
58                         daemon rpc.nfsd $RPCNFSDCOUNT
59                 fi
60                 touch /var/lock/subsys/nfs
61         else
62                 msg_already_running "NFS"
63         fi
64         ;;
65   stop)
66         if [ -f /var/lock/subsys/nfs ]; then
67                 # Stop daemons.
68                 if [ "$NFSDTYPE" = "U" ] ; then
69                         msg_stopping "NFS mountd"
70                         killproc rpc.mountd
71                         msg_stopping "NFS daemon"
72                         killproc rpc.nfsd
73                 else
74                         msg_stopping "NFS mountd"
75                         killproc rpc.mountd
76                         msg_stopping "NFS daemon"
77                         killproc nfsd -QUIT
78                         msg_stopping "NFS"
79                         daemon /usr/sbin/exportfs -au
80                 fi
81                 rm -f /var/lock/subsys/nfs
82         else
83                 msg_not_running "NFS"
84         fi
85         ;;
86   status)
87         status rpc.mountd
88         RETVAL=$?
89         if [ "$NFSDTYPE" = "U" ] ; then
90                 status rpc.nfsd
91         else
92                 status nfsd
93         fi
94         RET=$?
95         [ $RETVAL -eq 0 ] && RETVAL=$RET
96         ;;
97   restart)
98         $0 stop
99         $0 start
100         exit $?
101         ;;
102   force-reload)
103         if [ "$NFSDTYPE" = "U" ]; then
104                 $0 restart
105         else
106                 $0 reload
107         fi
108         exit $?
109         ;;
110   reload)
111         [ "$NFSDTYPE" = "U" ] && exit 0
112         if [ -f /var/lock/subsys/nfs ]; then
113                 msg_reloading "NFS"
114                 busy
115                 /usr/sbin/exportfs
116                 [ $? -ne 0 ] && RETVAL=7
117                 [ $RETVAL -eq 0 ] && ok || died 
118         else
119                 msg_not_running "NFS" >&2
120                 exit 7
121         fi
122         ;;
123   probe)
124         [ "$NFSDTYPE" = "U" ] && exit 0
125         if [ ! -f /var/lock/subsys/nfs ] ; then
126                 echo start
127                 exit 0
128         fi
129         /sbin/pidof rpc.mountd >/dev/null 2>&1; MOUNTD="$?"
130         /sbin/pidof nfsd >/dev/null 2>&1; NFSD="$?"
131         if [ $MOUNTD = 1 -o $NFSD = 1 ] ; then
132                 echo restart
133                 exit 0
134         fi
135         if [ /etc/exports -nt /var/lock/subsys/nfs ] ; then
136                 echo reload
137                 exit 0
138         fi
139         ;;
140   *)
141         msg_usage "$0 {start|stop|restart|reload|force-reload|probe|status}"
142         exit 3
143 esac
144
145 exit $RETVAL
This page took 0.065507 seconds and 4 git commands to generate.