]> git.pld-linux.org Git - packages/nfs-utils.git/blame - nfslock.init
- rel 2
[packages/nfs-utils.git] / nfslock.init
CommitLineData
d419f9f1
JR
1#!/bin/sh
2#
ff100ffc 3# nfslock This shell script takes care of starting and stopping
3ddf9c2b 4# the NSM status monitor - rpc.statd
d419f9f1 5#
891a86c9 6# chkconfig: 345 14 82
3ddf9c2b
JR
7# description: The rpc.statd server implements the NSM \
8# (Network Status Monitor) RPC protocol. \
9# It is used by the NFS file locking service, lockd \
10# to implement lock recovery when the NFS server \
11# machine crashes and reboots.
f6619580 12# probe: true
d419f9f1
JR
13
14# Source function library.
15. /etc/rc.d/init.d/functions
16
17# Get network config
18. /etc/sysconfig/network
19
20# Get service config
21[ -f /etc/sysconfig/nfslock ] && . /etc/sysconfig/nfslock
22
23# Check that networking is up.
ff100ffc 24if is_yes "${NETWORKING}"; then
b69cfb4d 25 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
3ddf9c2b 26 msg_network_down "RPC statd"
ff100ffc 27 exit 1
28 fi
29else
30 exit 0
d419f9f1
JR
31fi
32
fcdc7f4e
JR
33if [ "$1" != "stop" ]; then
34 check_portmapper || { nls "Error: portmap isn't running" && exit 0; }
d419f9f1
JR
35fi
36
fb01afbb
JR
37# /usr may be on NFS, fail silently, nfsfs will start it
38[ -x /usr/sbin/rpc.statd ] || exit 0
39
ad615b8a 40start() {
73f8a2e1 41 # Check if the service is already running?
00b12e41 42 if [ -f /var/lock/subsys/nfslock ]; then
3ddf9c2b 43 msg_already_running "RPC statd"
00b12e41
ER
44 return
45 fi
46
47 # Set the ports lockd should listen on
48 if [ -n "$LOCKD_TCPPORT" ]; then
49 /sbin/sysctl -w fs.nfs.nlm_tcpport=$LOCKD_TCPPORT >/dev/null 2>&1
73f8a2e1 50 fi
00b12e41
ER
51 if [ -n "$LOCKD_UDPPORT" ]; then
52 /sbin/sysctl -w fs.nfs.nlm_udpport=$LOCKD_UDPPORT >/dev/null 2>&1
53 fi
54
55 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
56 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
57
58 # Start daemons.
59 # Don't put sm-notify here, statd will run it when started
60 msg_starting "RPC statd"
90efdedd 61 daemon /usr/sbin/rpc.statd $STATDOPTS
00b12e41
ER
62 RETVAL=$?
63 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nfslock
ad615b8a
ER
64}
65
66stop() {
00b12e41 67 if [ ! -f /var/lock/subsys/nfslock ]; then
3ddf9c2b 68 msg_not_running "RPC statd"
00b12e41 69 return
73f8a2e1 70 fi
00b12e41
ER
71
72 # Reset the lockd ports if they were set
73 if [ -n "$LOCKD_TCPPORT" ]; then
74 /sbin/sysctl -w fs.nfs.nlm_tcpport=0 >/dev/null 2>&1
75 fi
76 if [ -n "$LOCKD_UDPPORT" ]; then
77 /sbin/sysctl -w fs.nfs.nlm_udpport=0 >/dev/null 2>&1
78 fi
79 # Stop daemons.
80 msg_stopping "RPC statd"
81 killproc rpc.statd
82 rm -f /var/lock/subsys/nfslock
ad615b8a
ER
83}
84
85RETVAL=0
86# See how we were called.
87case "$1" in
88 start)
89 start
90 ;;
91 stop)
92 stop
d419f9f1 93 ;;
5246d326 94 restart|force-reload)
ad615b8a
ER
95 stop
96 start
d419f9f1
JR
97 ;;
98 probe)
5da51246 99 if [ ! -f /var/lock/subsys/nfslock ]; then
ff100ffc 100 echo start
101 exit 0
d419f9f1 102 fi
cade9e7d
JR
103 /sbin/pidof rpc.statd >/dev/null 2>&1; STATD="$?"
104 if [ $STATD = 1 ]; then
105 echo restart
ff100ffc 106 exit 0
d419f9f1
JR
107 fi
108 ;;
00b12e41
ER
109 status)
110 status rpc.statd
111 exit $?
112 ;;
d419f9f1 113 *)
5246d326 114 msg_usage "$0 {start|stop|restart|force-reload|probe|status}"
115 exit 3
d419f9f1
JR
116esac
117
5246d326 118exit $RETVAL
This page took 0.249216 seconds and 4 git commands to generate.