a0c2c3691c
for its sysctls instead of vfs.newnfs. This separates the names from the ones used by the client.
74 lines
1.5 KiB
Bash
Executable File
74 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: nfsd
|
|
# REQUIRE: mountd hostname gssd nfsuserd
|
|
# KEYWORD: nojail shutdown
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="nfsd"
|
|
rcvar=`set_rcvar nfs_server`
|
|
command="/usr/sbin/${name}"
|
|
|
|
load_rc_config $name
|
|
start_precmd="nfsd_precmd"
|
|
sig_stop="USR1"
|
|
|
|
nfsd_precmd()
|
|
{
|
|
if checkyesno oldnfs_server_enable; then
|
|
rc_flags="-o ${nfs_server_flags}"
|
|
|
|
if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
|
|
force_depend nfsserver || return 1
|
|
fi
|
|
|
|
if checkyesno nfs_reserved_port_only; then
|
|
echo 'NFS on reserved port only=YES'
|
|
sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
|
|
fi
|
|
else
|
|
rc_flags="${nfs_server_flags}"
|
|
|
|
# Load the modules now, so that the vfs.nfsd sysctl
|
|
# oids are available.
|
|
load_kld nfsd
|
|
|
|
if checkyesno nfs_reserved_port_only; then
|
|
echo 'NFS on reserved port only=YES'
|
|
sysctl vfs.nfsd.nfs_privport=1 > /dev/null
|
|
fi
|
|
|
|
if checkyesno nfsv4_server_enable; then
|
|
if ! checkyesno nfsuserd_enable && \
|
|
! /etc/rc.d/nfsuserd forcestatus 1>/dev/null 2>&1
|
|
then
|
|
if ! force_depend nfsuserd; then
|
|
err 1 "Cannot run nfsuserd"
|
|
fi
|
|
fi
|
|
else
|
|
echo 'NFSv4 is disabled'
|
|
sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null
|
|
fi
|
|
fi
|
|
|
|
if ! checkyesno rpcbind_enable && \
|
|
! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
|
|
then
|
|
force_depend rpcbind || return 1
|
|
fi
|
|
|
|
if ! checkyesno mountd_enable && \
|
|
! /etc/rc.d/mountd forcestatus 1>/dev/null 2>&1
|
|
then
|
|
force_depend mountd || return 1
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
run_rc_command "$1"
|