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