--- /dev/null
+#!/bin/sh
+# nfs This shell script starts and stops the nfs services in a distribution
+# independent fashion.
+## description: starts and stops nfs client services
+# chkconfig: 2345 99 01
+#
+# Copyright (c) 2000-2001 Mission Critical Linux, Inc.
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+export PATH
+
+# Who am I?
+SCRIPT_NAME=`basename $0`
+
+# Grab our daemon functions.
+. `dirname $0`/nfs-functions
+
+# Kernel daemons and options
+PREFIX="rpc." # Prefix for kernel execs (usually "rpc.")
+LOCKD="lockd" # Lockd
+
+# User daemons and options
+STATD="rpc.statd" # NLM Server
+
+
+# We need rpc.lockd on kernels < 2.2.18 if Trond Myklebust and Dave Higgens'
+# NFS patches have not been applied.
+lockd_not_needed()
+{
+ if [ "`uname`" = "Linux" ]; then
+
+ os_rel=`uname -r`
+
+ # This messily chops up the linux version number and turns it into
+ # a comparable integer.
+ #
+ # printf value description
+ # %d `echo $os_rel | cut -f1 -d.` Major Linux release #
+ # %02d `echo $os_rel | cut -f2 -d.` Minor Linux release #
+ # %02d `echo $os_rel | cut -f3 -d.` Patchlevel
+ #
+ linux_version_code=`printf "%d%02d%02d" \`echo $os_rel | cut -f1 -d.\` \`echo $os_rel | cut -f2 -d.\` \`echo $os_rel | cut -f3 -d.\``
+ return $((linux_version_code < 20218))
+ fi
+
+ # On non-Linux systems, assume that lockd is always required.
+ return 1
+}
+
+# We use "type -path" instead of "which" since it's internal to bash.
+[ -x "`type -path $STATD`" ] || exit 0
+
+# Check to see if we need lockd (ie, nfsd doesn't handle spawning and
+# maintaining it)
+if lockd_not_needed
+then
+ unset LOCKD
+else
+ # We need it. Make sure we have it.
+ [ -x "`type -path $PREFIX$LOCKD`" ] || exit 0
+fi
+
+# Handle how we were called.
+case "$1" in
+start)
+ # Start rpc.statd daemon without options...
+ echo -n "Starting $STATD: "
+ startdaemon $STATD
+
+ if [ -n "$LOCKD" ]
+ then
+ echo -n "Starting $LOCKD: "
+ startdaemon $PREFIX$LOCKD
+ fi
+
+ # if this lock file doesn't exist, init won't even try to run
+ # the shutdown script for this service on RedHat systems!
+ # on non-RedHat systems, /var/lock/subsys may not exist.
+ touch /var/lock/subsys/$SCRIPT_NAME &> /dev/null
+ ;;
+
+stop)
+ echo -n "Stopping $STATD: "
+ stopdaemon $STATD
+
+ if [ -n "$LOCKD" ]; then
+ echo -n "Stopping $LOCKD: "
+ stopdaemon $LOCKD
+ fi
+
+ rm -f /var/lock/subsys/$SCRIPT_NAME
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+status)
+ daemonstatus $STATD
+
+ if [ -n "$LOCKD" ]; then
+ daemonstatus $LOCKD
+ fi
+
+ exit 0
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|status|restart}"
+ exit 1
+esac
+
+exit 0