2002-04-07 H.J. Lu <hjl@lucon.org>
[nfs-utils.git] / etc / redhat / nfslock.init
1 #!/bin/sh
2 #
3 # nfslock       This shell script takes care of starting and stopping
4 #               the NFS file locking service.
5 #
6 # chkconfig: 345 60 86
7 # description: NFS is a popular protocol for file sharing across \
8 #              TCP/IP networks. This service provides NFS file \
9 #              locking functionality.
10 # probe: true
11
12 # Source function library.
13 . /etc/rc.d/init.d/functions
14
15 # Source networking configuration.
16 if [ ! -f /etc/sysconfig/network ]; then
17     exit 0
18 fi
19
20 . /etc/sysconfig/network
21
22 # Check that networking is up.
23 [ ${NETWORKING} = "no" ] && exit 0
24
25 [ -x /sbin/rpc.lockd ] || exit 0
26 [ -x /sbin/rpc.statd ] || exit 0
27
28 if [ -n "${STATD_HOSTNAME}" ]; then
29     STATDARG="-n ${STATD_HOSTNAME}"
30 else
31     STATDARG=""
32 fi
33
34 # See how we were called.
35 case "$1" in
36   start)
37         # Start daemons.
38         echo "Starting NFS file locking services: "
39         echo -n "Starting NFS lockd: "
40         daemon rpc.lockd
41         echo
42         echo -n "Starting NFS statd: "
43         daemon rpc.statd ${STATDARG}
44         echo
45         touch /var/lock/subsys/nfslock
46         ;;
47   stop)
48         # Stop daemons.
49         echo "Shutting down NFS file locking services: "
50         pidlist=`pidofproc lockd`
51         if [ -n "$pidlist" ]; then
52                 pid=
53                 for apid in $pidlist ; do
54                         [ -f /proc/$apid/exe ] && pid="$pid $apid"
55                 done
56                 if [ -n "$pid" ]; then
57                         echo -n "Shutting down NFS lockd: "
58                         killproc lockd
59                         echo
60                 fi
61         fi
62         echo -n "Shutting down NFS statd: "
63         killproc rpc.statd
64         echo
65         rm -f /var/lock/subsys/nfslock
66         ;;
67   status)
68         status lockd
69         status rpc.statd
70         ;;
71   restart)
72         $0 stop
73         $0 start
74         ;;
75   probe)
76         if [ ! -f /var/lock/subsys/nfslock ] ; then
77           echo start; exit 0
78         fi
79         /sbin/pidof rpc.statd >/dev/null 2>&1; STATD="$?"
80         /sbin/pidof lockd >/dev/null 2>&1; LOCKD="$?"
81         if [ $STATD = 1 -o $LOCKD = 1 ] ; then
82           echo restart; exit 0
83         fi
84         ;;
85   *)
86         echo "Usage: nfslock {start|stop|status|restart}"
87         exit 1
88 esac
89
90 exit 0