xref: /freebsd/libexec/rc/rc.d/mountd (revision aa183bc7f96fdd51c4a6ead5586a1cb1ecec6bb2)
10696600cSBjoern A. Zeeb#!/bin/sh
20696600cSBjoern A. Zeeb#
30696600cSBjoern A. Zeeb#
40696600cSBjoern A. Zeeb
50696600cSBjoern A. Zeeb# PROVIDE: mountd
6f72926eaSRick Macklem# REQUIRE: NETWORKING rpcbind quota mountlate
70bb08f21SRick Macklem# KEYWORD: nojailvnet shutdown
80696600cSBjoern A. Zeeb
90696600cSBjoern A. Zeeb. /etc/rc.subr
100696600cSBjoern A. Zeeb
110696600cSBjoern A. Zeebname="mountd"
120696600cSBjoern A. Zeebdesc="Service remote NFS mount requests"
130696600cSBjoern A. Zeebrcvar="mountd_enable"
140696600cSBjoern A. Zeebcommand="/usr/sbin/${name}"
150696600cSBjoern A. Zeebpidfile="/var/run/${name}.pid"
160696600cSBjoern A. Zeebrequired_files="/etc/exports"
170696600cSBjoern A. Zeebstart_precmd="mountd_precmd"
180696600cSBjoern A. Zeebextra_commands="reload"
190696600cSBjoern A. Zeeb
20f99f0ee1SAlexander Leidinger: ${mountd_svcj_options:="net_basic nfsd"}
21f99f0ee1SAlexander Leidinger
220696600cSBjoern A. Zeebmountd_precmd()
230696600cSBjoern A. Zeeb{
244389a566SRick Macklem
254389a566SRick Macklem	# Load the modules now, so that the vfs.nfsd sysctl
264389a566SRick Macklem	# oids are available.
274389a566SRick Macklem	load_kld nfsd || return 1
284389a566SRick Macklem
294389a566SRick Macklem	# Do not force rpcbind to be running for an NFSv4 only server.
304389a566SRick Macklem	#
314389a566SRick Macklem	if checkyesno nfsv4_server_only; then
324389a566SRick Macklem		echo 'NFSv4 only server'
334389a566SRick Macklem		sysctl vfs.nfsd.server_min_nfsvers=4 > /dev/null
344389a566SRick Macklem		sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null
354389a566SRick Macklem		rc_flags="${rc_flags} -R"
364389a566SRick Macklem	else
370696600cSBjoern A. Zeeb		force_depend rpcbind || return 1
381cf8e633SMike Karels		if checkyesno nfsv4_server_enable; then
391cf8e633SMike Karels			sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null
401cf8e633SMike Karels		else
4109673fc0SRick Macklem			sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null
4209673fc0SRick Macklem		fi
434389a566SRick Macklem	fi
440696600cSBjoern A. Zeeb
450696600cSBjoern A. Zeeb	# mountd flags will differ depending on rc.conf settings
460696600cSBjoern A. Zeeb	#
474389a566SRick Macklem	if checkyesno nfs_server_enable || checkyesno nfsv4_server_only; then
480696600cSBjoern A. Zeeb		if checkyesno weak_mountd_authentication; then
494389a566SRick Macklem			if checkyesno nfsv4_server_only; then
504389a566SRick Macklem				echo -n 'weak_mountd_authentication '
514389a566SRick Macklem				echo -n 'incompatible with nfsv4_server_only, '
524389a566SRick Macklem				echo 'ignored'
534389a566SRick Macklem			else
544389a566SRick Macklem				rc_flags="${rc_flags} -n"
554389a566SRick Macklem			fi
560696600cSBjoern A. Zeeb		fi
570696600cSBjoern A. Zeeb	else
580696600cSBjoern A. Zeeb		if checkyesno mountd_enable; then
590696600cSBjoern A. Zeeb			checkyesno weak_mountd_authentication && rc_flags="-n"
600696600cSBjoern A. Zeeb		fi
610696600cSBjoern A. Zeeb	fi
620696600cSBjoern A. Zeeb
630696600cSBjoern A. Zeeb	if checkyesno zfs_enable; then
640696600cSBjoern A. Zeeb		rc_flags="${rc_flags} /etc/exports /etc/zfs/exports"
650696600cSBjoern A. Zeeb	fi
660696600cSBjoern A. Zeeb
670696600cSBjoern A. Zeeb	rm -f /var/db/mountdtab
680696600cSBjoern A. Zeeb	( umask 022 ; > /var/db/mountdtab ) ||
690696600cSBjoern A. Zeeb	    err 1 'Cannot create /var/db/mountdtab'
700696600cSBjoern A. Zeeb}
710696600cSBjoern A. Zeeb
720696600cSBjoern A. Zeebload_rc_config $name
73*aa183bc7SDag-Erling Smørgravload_rc_config nfsd
74*aa183bc7SDag-Erling Smørgravload_rc_config zfs
75f99f0ee1SAlexander Leidinger
76f99f0ee1SAlexander Leidinger# precmd is not compatible with svcj
77f99f0ee1SAlexander Leidingermountd_svcj="NO"
78f99f0ee1SAlexander Leidinger
790696600cSBjoern A. Zeebrun_rc_command "$1"
80