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