10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: nfsd 60696600cSBjoern A. Zeeb# REQUIRE: mountcritremote mountd hostname gssd nfsuserd 70bb08f21SRick Macklem# KEYWORD: nojailvnet shutdown 80696600cSBjoern A. Zeeb 90696600cSBjoern A. Zeeb. /etc/rc.subr 100696600cSBjoern A. Zeeb 110696600cSBjoern A. Zeebname="nfsd" 120696600cSBjoern A. Zeebdesc="Remote NFS server" 130696600cSBjoern A. Zeebrcvar="nfs_server_enable" 140696600cSBjoern A. Zeebcommand="/usr/sbin/${name}" 15025816d9SSean Eric Fagannfs_server_vhost="" 160696600cSBjoern A. Zeeb 17*f99f0ee1SAlexander Leidinger: ${nfsd_svcj_options:="net_basic nfsd"} 18*f99f0ee1SAlexander Leidinger 190696600cSBjoern A. Zeebload_rc_config $name 20*f99f0ee1SAlexander Leidinger# precmd is not compatible with svcj 21*f99f0ee1SAlexander Leidingernfsd_svcj="NO" 220696600cSBjoern A. Zeebstart_precmd="nfsd_precmd" 230696600cSBjoern A. Zeebsig_stop="USR1" 240696600cSBjoern A. Zeeb 250696600cSBjoern A. Zeebnfsd_precmd() 260696600cSBjoern A. Zeeb{ 27025816d9SSean Eric Fagan local _vhost 280696600cSBjoern A. Zeeb rc_flags="${nfs_server_flags}" 290696600cSBjoern A. Zeeb 300696600cSBjoern A. Zeeb # Load the modules now, so that the vfs.nfsd sysctl 310696600cSBjoern A. Zeeb # oids are available. 324389a566SRick Macklem load_kld nfsd || return 1 330696600cSBjoern A. Zeeb 340bb08f21SRick Macklem if [ -n "${nfs_server_maxio}" ] && ! check_jail jailed; then 355509bad7SRick Macklem if ! sysctl vfs.nfsd.srvmaxio=${nfs_server_maxio} >/dev/null; then 365509bad7SRick Macklem warn "Failed to set server max I/O" 375509bad7SRick Macklem fi 385509bad7SRick Macklem fi 395509bad7SRick Macklem 400696600cSBjoern A. Zeeb if checkyesno nfs_reserved_port_only; then 410696600cSBjoern A. Zeeb echo 'NFS on reserved port only=YES' 420696600cSBjoern A. Zeeb sysctl vfs.nfsd.nfs_privport=1 > /dev/null 430696600cSBjoern A. Zeeb else 440696600cSBjoern A. Zeeb sysctl vfs.nfsd.nfs_privport=0 > /dev/null 450696600cSBjoern A. Zeeb fi 460696600cSBjoern A. Zeeb 470696600cSBjoern A. Zeeb if checkyesno nfs_server_managegids; then 480696600cSBjoern A. Zeeb force_depend nfsuserd || err 1 "Cannot run nfsuserd" 490696600cSBjoern A. Zeeb fi 500696600cSBjoern A. Zeeb 510696600cSBjoern A. Zeeb if checkyesno nfsv4_server_enable; then 520696600cSBjoern A. Zeeb sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null 534389a566SRick Macklem elif ! checkyesno nfsv4_server_only; then 540696600cSBjoern A. Zeeb echo 'NFSv4 is disabled' 550696600cSBjoern A. Zeeb sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null 560696600cSBjoern A. Zeeb fi 570696600cSBjoern A. Zeeb 584389a566SRick Macklem if ! checkyesno nfsv4_server_only; then 590696600cSBjoern A. Zeeb force_depend rpcbind || return 1 604389a566SRick Macklem fi 614389a566SRick Macklem 620696600cSBjoern A. Zeeb force_depend mountd || return 1 63025816d9SSean Eric Fagan if [ -n "${nfs_server_vhost}" ]; then 64025816d9SSean Eric Fagan command_args="-V \"${nfs_server_vhost}\"" 65025816d9SSean Eric Fagan fi 660696600cSBjoern A. Zeeb} 670696600cSBjoern A. Zeeb 680696600cSBjoern A. Zeebrun_rc_command "$1" 69