#!/bin/sh
#
# nfs           This shell script takes care of starting and stopping
#               the NFS services. Stolen from RedHat FC5.

[ -x /usr/sbin/rpc.statd ] || exit 0
[ -x /usr/sbin/rpc.nfsd ] || exit 0
[ -x /usr/sbin/rpc.mountd ] || exit 0
[ -x /usr/sbin/exportfs ] || exit 0

# Don't fail if /etc/exports doesn't exist; create a bare-bones version and continue.
[ -r /etc/exports ] || \
    { touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \
    { echo "/etc/exports does not exist" ; exit 0 ; }
    
# The /var/lib/nfs directory is actually on a tmpfs filesystem.
mkdir -p /var/lib/nfs/sm
mkdir -p /var/lib/nfs/sm.bak
mkdir -p /var/lock/subsys
touch /var/lib/nfs/etab
touch /var/lib/nfs/rmtab
touch /var/lib/nfs/state
touch /var/lib/nfs/xtab

start() {
	# Start daemons.
	echo -n "Starting NFS statd: "
	rpc.statd
	touch /var/lock/subsys/nfslock
	echo "done"

	echo -n "Starting NFS services: "
	/usr/sbin/exportfs -r
	rpc.statd
	echo "done"

	echo -n "Starting NFS daemon: "
	rpc.nfsd 2
	echo "done"

	echo -n "Starting NFS mountd: "
	rpc.mountd
	echo "done"
	touch /var/lock/subsys/nfs
}

stop() {
	# Stop daemons.
	echo -n "Shutting down NFS mountd: "
	killall -q rpc.mountd
	echo "done"

	echo "Shutting down NFS daemon: "
	kill -9 `pidof nfsd` 2>/dev/null
	echo "done"

	echo -n "Shutting down NFS services: "
	/usr/sbin/exportfs -au
	rm -f /var/lock/subsys/nfs
	killall -q rpc.statd
	echo "done"

	echo -n "Stopping NFS statd: "
	killall -q rpc.statd
	echo "done"
	rm -f /var/lock/subsys/nfslock
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	stop
	start
	;;
  reload)
	/usr/sbin/exportfs -r
	touch /var/lock/subsys/nfs
	;;
  *)
	echo "Usage: nfs {start|stop|reload}"
	exit 1
esac

exit 0
