xref: /freebsd-13.1/libexec/rc/rc.d/mountd (revision 85ad4936)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb# $FreeBSD$
40696600cSBjoern A. Zeeb#
50696600cSBjoern A. Zeeb
60696600cSBjoern A. Zeeb# PROVIDE: mountd
70696600cSBjoern A. Zeeb# REQUIRE: NETWORKING rpcbind quota
80696600cSBjoern A. Zeeb# KEYWORD: nojail shutdown
90696600cSBjoern A. Zeeb
100696600cSBjoern A. Zeeb. /etc/rc.subr
110696600cSBjoern A. Zeeb
120696600cSBjoern A. Zeebname="mountd"
130696600cSBjoern A. Zeebdesc="Service remote NFS mount requests"
140696600cSBjoern A. Zeebrcvar="mountd_enable"
150696600cSBjoern A. Zeebcommand="/usr/sbin/${name}"
160696600cSBjoern A. Zeebpidfile="/var/run/${name}.pid"
170696600cSBjoern A. Zeebrequired_files="/etc/exports"
180696600cSBjoern A. Zeebstart_precmd="mountd_precmd"
190696600cSBjoern A. Zeebextra_commands="reload"
200696600cSBjoern A. Zeeb
210696600cSBjoern A. Zeebmountd_precmd()
220696600cSBjoern A. Zeeb{
234389a566SRick Macklem
244389a566SRick Macklem	# Load the modules now, so that the vfs.nfsd sysctl
254389a566SRick Macklem	# oids are available.
264389a566SRick Macklem	load_kld nfsd || return 1
274389a566SRick Macklem
284389a566SRick Macklem	# Do not force rpcbind to be running for an NFSv4 only server.
294389a566SRick Macklem	#
304389a566SRick Macklem	if checkyesno nfsv4_server_only; then
314389a566SRick Macklem		echo 'NFSv4 only server'
324389a566SRick Macklem		sysctl vfs.nfsd.server_min_nfsvers=4 > /dev/null
334389a566SRick Macklem		sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null
344389a566SRick Macklem		rc_flags="${rc_flags} -R"
354389a566SRick Macklem	else
360696600cSBjoern A. Zeeb		force_depend rpcbind || return 1
37*85ad4936SRick Macklem		if ! checkyesno nfsv4_server_enable; then
38*85ad4936SRick Macklem			sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null
39*85ad4936SRick Macklem		fi
404389a566SRick Macklem	fi
410696600cSBjoern A. Zeeb
420696600cSBjoern A. Zeeb	# mountd flags will differ depending on rc.conf settings
430696600cSBjoern A. Zeeb	#
444389a566SRick Macklem	if checkyesno nfs_server_enable || checkyesno nfsv4_server_only; then
450696600cSBjoern A. Zeeb		if checkyesno weak_mountd_authentication; then
464389a566SRick Macklem			if checkyesno nfsv4_server_only; then
474389a566SRick Macklem				echo -n 'weak_mountd_authentication '
484389a566SRick Macklem				echo -n 'incompatible with nfsv4_server_only, '
494389a566SRick Macklem				echo 'ignored'
504389a566SRick Macklem			else
514389a566SRick Macklem				rc_flags="${rc_flags} -n"
524389a566SRick Macklem			fi
530696600cSBjoern A. Zeeb		fi
540696600cSBjoern A. Zeeb	else
550696600cSBjoern A. Zeeb		if checkyesno mountd_enable; then
560696600cSBjoern A. Zeeb			checkyesno weak_mountd_authentication && rc_flags="-n"
570696600cSBjoern A. Zeeb		fi
580696600cSBjoern A. Zeeb	fi
590696600cSBjoern A. Zeeb
600696600cSBjoern A. Zeeb	if checkyesno zfs_enable; then
610696600cSBjoern A. Zeeb		rc_flags="${rc_flags} /etc/exports /etc/zfs/exports"
620696600cSBjoern A. Zeeb	fi
630696600cSBjoern A. Zeeb
640696600cSBjoern A. Zeeb	rm -f /var/db/mountdtab
650696600cSBjoern A. Zeeb	( umask 022 ; > /var/db/mountdtab ) ||
660696600cSBjoern A. Zeeb	    err 1 'Cannot create /var/db/mountdtab'
670696600cSBjoern A. Zeeb}
680696600cSBjoern A. Zeeb
690696600cSBjoern A. Zeebload_rc_config $name
700696600cSBjoern A. Zeebrun_rc_command "$1"
71