3 # nfslock This shell script takes care of starting and stopping
4 # the NSM status monitor - rpc.statd
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.
14 # Source function library.
15 . /etc/rc.d/init.d/functions
18 . /etc/sysconfig/network
21 [ -f /etc/sysconfig/nfslock ] && . /etc/sysconfig/nfslock
23 # Check that networking is up.
24 if is_yes "${NETWORKING}"; then
25 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
26 msg_network_down "RPC statd"
33 if [ "$1" != "stop" ]; then
34 check_portmapper || { nls "Error: portmap isn't running" && exit 0; }
38 # Check if the service is already running?
39 if [ -f /var/lock/subsys/nfslock ]; then
40 msg_already_running "RPC statd"
44 # Set the ports lockd should listen on
45 if [ -n "$LOCKD_TCPPORT" ]; then
46 /sbin/sysctl -w fs.nfs.nlm_tcpport=$LOCKD_TCPPORT >/dev/null 2>&1
48 if [ -n "$LOCKD_UDPPORT" ]; then
49 /sbin/sysctl -w fs.nfs.nlm_udpport=$LOCKD_UDPPORT >/dev/null 2>&1
53 # Don't put sm-notify here, statd will run it when started
54 msg_starting "RPC statd"
55 daemon /sbin/rpc.statd $STATDOPTIONS
57 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nfslock
61 if [ ! -f /var/lock/subsys/nfslock ]; then
62 msg_not_running "RPC statd"
66 # Reset the lockd ports if they were set
67 if [ -n "$LOCKD_TCPPORT" ]; then
68 /sbin/sysctl -w fs.nfs.nlm_tcpport=0 >/dev/null 2>&1
70 if [ -n "$LOCKD_UDPPORT" ]; then
71 /sbin/sysctl -w fs.nfs.nlm_udpport=0 >/dev/null 2>&1
74 msg_stopping "RPC statd"
76 rm -f /var/lock/subsys/nfslock
80 # See how we were called.
93 if [ ! -f /var/lock/subsys/nfslock ]; then
97 /sbin/pidof rpc.statd >/dev/null 2>&1; STATD="$?"
98 if [ $STATD = 1 ]; then
108 msg_usage "$0 {start|stop|restart|force-reload|probe|status}"