#!/bin/sh
#
# PROVIDE: nfsd
# REQUIRE: mountd
# KEYWORD: shutdown

$_rc_subr_loaded . /etc/rc.subr

name="nfsd"
rcvar=$name
command="/usr/sbin/rpc.nfsd"
start_cmd="nfsd_start_cmd"
stop_cmd="nfsd_stop_cmd"
status_cmd="nfsd_status_cmd"
pidfile="/var/run/${name}.pid"

nfsd_start_cmd()
{
	#
	# Load the nfsd module to make the mount call
	# succeed.
	#
	modprobe -q nfsd

	#
	# By default start up 8 threads.
	#
	[ -z "${nfsd_flags}" ] && nfsd_flags="8"

	# Check for /proc/fs/nfsd
	if grep -qs nfsd /proc/filesystems ; then
		if ! grep -qs "nfsd /proc/fs/nfsd" /proc/mounts ; then
			mount -t nfsd -o nodev,noexec,nosuid nfsd /proc/fs/nfsd
		fi
	fi
	${command} ${nfsd_flags}
	echo $(pidof -o %PPID ${name}) > ${pidfile}
	echo "Starting ${name}."

	/usr/sbin/sm-notify ${smnotify_args}
}

nfsd_stop_cmd()
{
	#
	# Unexport all directories before.
	#
	exportfs -au

	if [ -f ${pidfile} ]; then
		PID=$(cat ${pidfile})
		kill ${PID}
		rm -f ${pidfile}
	fi
	echo "Stopped ${name}."
}

nfsd_status_cmd()
{
	if [ ! -f ${pidfile} ]; then
		echo "${name} is not running."
		return 0
	fi

	PID=$(cat ${pidfile})
	echo "${name} is running with PIDs: ${PID}"
}

load_rc_config $name
run_rc_command "$1"
